@progress/kendo-theme-core 6.5.0-dev.1 → 6.5.0-dev.2
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/all.css +281 -0
- package/dist/all.scss +921 -211
- package/dist/meta/sassdoc-data.json +484 -76
- package/dist/meta/sassdoc-raw-data.json +328 -77
- package/dist/meta/variables.json +222 -10
- package/package.json +2 -2
- package/scss/_variables.scss +76 -1
- package/scss/color-system/_functions.import.scss +54 -0
- package/scss/color-system/_mixins.import.scss +7 -0
- package/scss/color-system/_variables.scss +164 -0
- package/scss/color-system/index.import.scss +1 -1
- package/scss/functions/_map.import.scss +30 -0
- package/scss/functions/_string.import.scss +37 -0
- package/scss/functions/index.import.scss +0 -2
- package/scss/mixins/_decoration.scss +28 -0
- package/scss/mixins/_disabled.scss +10 -0
- package/scss/mixins/_hide-scrollbar.scss +13 -1
- package/scss/mixins/index.import.scss +1 -7
- package/scss/styles/_base.scss +133 -0
- package/scss/styles/_layout.scss +14 -0
- package/scss/styles/_loading.scss +119 -0
- package/scss/styles/_selection.scss +25 -0
- package/scss/styles/index.import.scss +6 -0
|
@@ -47,6 +47,36 @@
|
|
|
47
47
|
@return $map;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/// Returns a deep-map with the keys and values from `$map` and `$args`.
|
|
51
|
+
/// @param {Map} $maps - The maps to deep-merge.
|
|
52
|
+
/// @return {Map} - A map with the keys and values from `$map` and `$args`.
|
|
53
|
+
///
|
|
54
|
+
/// @example scss - Usage
|
|
55
|
+
/// @debug k-map-deep-merge( ( "foo": ("bar": "baz", "baz": "qux" ) ), ( "foo": ("bar": "foo") ) ); // => ( "foo": ("bar": "foo", "baz": "qux" ))
|
|
56
|
+
@function k-map-deep-merge($maps...) {
|
|
57
|
+
$merged: ();
|
|
58
|
+
|
|
59
|
+
@each $map in $maps {
|
|
60
|
+
@each $key, $val in $map {
|
|
61
|
+
@if (k-meta-type-of($val) == 'map') {
|
|
62
|
+
$current: k-map-get($merged, $key);
|
|
63
|
+
@if (k-meta-type-of($current) == 'map') {
|
|
64
|
+
$val: k-map-deep-merge($current, $val);
|
|
65
|
+
$map: k-map-merge(
|
|
66
|
+
$map,
|
|
67
|
+
(
|
|
68
|
+
$key: $val
|
|
69
|
+
)
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
$merged: k-map-merge($merged, $map);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@return $merged;
|
|
78
|
+
}
|
|
79
|
+
|
|
50
80
|
/// Returns a map with the keys and values from `$map` except for `$keys`.
|
|
51
81
|
/// @param {Map} $map - The map to remove keys from.
|
|
52
82
|
/// @param {Any} $keys - The keys to remove from `$map`.
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
$svg-escaped-characters: (
|
|
2
|
+
("%", "%25"),
|
|
3
|
+
("<", "%3c"),
|
|
4
|
+
(">", "%3e"),
|
|
5
|
+
("#", "%23"),
|
|
6
|
+
("(", "%28"),
|
|
7
|
+
(")", "%29")
|
|
8
|
+
) !default;
|
|
9
|
+
|
|
1
10
|
/// Returns the first index of `$substring` in `$string`, or `null` if `$string` doesn’t contain `$substring`.
|
|
2
11
|
/// @param {String} $string - The string to process.
|
|
3
12
|
/// @param {String} $substring - The substring to look for.
|
|
@@ -116,3 +125,31 @@
|
|
|
116
125
|
@function k-string-unquote( $string ) {
|
|
117
126
|
@return unquote( $string );
|
|
118
127
|
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
// See https://www.sassmeister.com/gist/1b4f2da5527830088e4d
|
|
131
|
+
@function str-replace($string, $search, $replace: "") {
|
|
132
|
+
$index: k-string-index($string, $search);
|
|
133
|
+
|
|
134
|
+
@if $index {
|
|
135
|
+
@return k-string-slice($string, 1, $index - 1) + $replace + str-replace(k-string-slice($string, $index + k-string-length($search)), $search, $replace);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@return $string;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// See https://codepen.io/kevinweber/pen/dXWoRw
|
|
142
|
+
@function escape-svg($string) {
|
|
143
|
+
@if k-string-index($string, "data:image/svg+xml") {
|
|
144
|
+
@each $char, $encoded in $svg-escaped-characters {
|
|
145
|
+
// Do not escape the url brackets
|
|
146
|
+
@if k-string-index($string, "url(") == 1 {
|
|
147
|
+
$string: url("#{str-replace(k-string-slice($string, 6, -3), $char, $encoded)}");
|
|
148
|
+
} @else {
|
|
149
|
+
$string: str-replace($string, $char, $encoded);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@return $string;
|
|
155
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@mixin fill( $color: null, $bg: null, $border: null, $gradient: null ) {
|
|
2
|
+
@if $border {
|
|
3
|
+
border-color: $border;
|
|
4
|
+
}
|
|
5
|
+
@if $color {
|
|
6
|
+
color: $color;
|
|
7
|
+
}
|
|
8
|
+
@if $bg {
|
|
9
|
+
background-color: $bg;
|
|
10
|
+
}
|
|
11
|
+
@if $gradient {
|
|
12
|
+
@include linear-gradient( $gradient );
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin linear-gradient( $gradient: null ) {
|
|
17
|
+
@if $gradient and $kendo-enable-gradients {
|
|
18
|
+
@if $gradient == none {
|
|
19
|
+
background-image: none;
|
|
20
|
+
} @else {
|
|
21
|
+
background-image: linear-gradient( $gradient );
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@mixin repeating-striped-gradient( $color: rgba(255,255,255,.15), $background: #FFF, $angle: 45deg, $largeStep: 2px, $smallStep: 1px) {
|
|
27
|
+
background-image: repeating-linear-gradient($angle, $background, $background $smallStep, $color $smallStep, $color $largeStep);
|
|
28
|
+
}
|
|
@@ -7,3 +7,13 @@
|
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
box-shadow: none;
|
|
9
9
|
}
|
|
10
|
+
|
|
11
|
+
@mixin disabled-color( $color: null, $bg: null, $border: null ) {
|
|
12
|
+
outline: none;
|
|
13
|
+
cursor: default;
|
|
14
|
+
background-color: $bg;
|
|
15
|
+
color: $color;
|
|
16
|
+
border-color: $border;
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
box-shadow: none;
|
|
19
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$kendo-scrollbar-width: 17px !default;
|
|
2
2
|
|
|
3
|
-
@mixin hide-scrollbar( $dir: "right", $max-scrollbar: 100px
|
|
3
|
+
@mixin hide-scrollbar( $dir: "right", $max-scrollbar: 100px) {
|
|
4
4
|
// anything larger than the scrollbar width will do
|
|
5
5
|
$scrollbar-size: var( --kendo-scrollbar-width, #{$kendo-scrollbar-width} );
|
|
6
6
|
$margin: calc( -#{$max-scrollbar} - #{$scrollbar-size} );
|
|
@@ -16,3 +16,15 @@ $kendo-scrollbar-width: 17px !default;
|
|
|
16
16
|
margin-right: -$max-scrollbar;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
@mixin hide-scrollbar-dir-agnostic($max-scrollbar: 100px) {
|
|
21
|
+
// anything larger than the scrollbar width will do
|
|
22
|
+
$scrollbar-size: var( --kendo-scrollbar-width, #{$kendo-scrollbar-width} );
|
|
23
|
+
$margin: calc( -#{$max-scrollbar} - #{$scrollbar-size} );
|
|
24
|
+
|
|
25
|
+
padding-inline-end: $max-scrollbar;
|
|
26
|
+
padding-inline-start: $max-scrollbar;
|
|
27
|
+
|
|
28
|
+
margin-inline-start: -$max-scrollbar;
|
|
29
|
+
margin-inline-end: $margin;
|
|
30
|
+
}
|
|
@@ -2,19 +2,13 @@
|
|
|
2
2
|
@import "./_box-shadow.scss";
|
|
3
3
|
@import "./_data-uri.scss";
|
|
4
4
|
@import "./_disabled.scss";
|
|
5
|
+
@import "./_decoration.scss";
|
|
5
6
|
@import "./_focus-indicator.scss";
|
|
6
7
|
@import "./_gradient.scss";
|
|
7
8
|
@import "./_hide-scrollbar.scss";
|
|
8
9
|
@import "./_import-once.scss";
|
|
9
10
|
@import "./_typography.scss";
|
|
10
11
|
|
|
11
|
-
@mixin fill( $color: null, $bg: null, $border: null, $gradient: null ) {
|
|
12
|
-
border-color: $border;
|
|
13
|
-
color: $color;
|
|
14
|
-
background-color: $bg;
|
|
15
|
-
@include linear-gradient( $gradient );
|
|
16
|
-
}
|
|
17
|
-
|
|
18
12
|
@mixin background-image( $background-image: null ) {
|
|
19
13
|
@if $background-image {
|
|
20
14
|
background-image: url(#{$background-image});
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
@mixin kendo-core--styles--base() {
|
|
2
|
+
// Disabled state
|
|
3
|
+
.k-disabled,
|
|
4
|
+
.k-widget[disabled],
|
|
5
|
+
.k-disabled {
|
|
6
|
+
@include disabled-color(
|
|
7
|
+
$color: var( --kendo-disabled-text, inherit ),
|
|
8
|
+
$border: var( --kendo-disabled-border, inherit )
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
.k-link {
|
|
12
|
+
cursor: default;
|
|
13
|
+
outline: 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Horizontal line
|
|
18
|
+
.k-hr {
|
|
19
|
+
margin-block: k-map-get( $kendo-spacing, 4 );
|
|
20
|
+
padding: 0;
|
|
21
|
+
height: 0;
|
|
22
|
+
border-width: 1px 0 0;
|
|
23
|
+
border-style: solid;
|
|
24
|
+
border-color: var( --kendo-component-border, inherit );
|
|
25
|
+
display: block;
|
|
26
|
+
float: none;
|
|
27
|
+
clear: both;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Horizontal rule
|
|
31
|
+
.k-d-flex-row > .k-hr {
|
|
32
|
+
margin: 0;
|
|
33
|
+
width: 0;
|
|
34
|
+
height: auto;
|
|
35
|
+
border-width: 0 0 0 1px;
|
|
36
|
+
flex: 0 0 auto;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Vertical rule
|
|
40
|
+
.k-d-flex-col > .k-hr {
|
|
41
|
+
margin: 0;
|
|
42
|
+
flex: 0 0 auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.k-sprite {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
width: 1rem;
|
|
48
|
+
height: 1rem;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
background-repeat: no-repeat;
|
|
51
|
+
font-size: 0;
|
|
52
|
+
line-height: 0;
|
|
53
|
+
text-align: center;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.k-image {
|
|
57
|
+
display: inline-block;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Layout
|
|
61
|
+
.k-reset {
|
|
62
|
+
margin: 0;
|
|
63
|
+
padding: 0;
|
|
64
|
+
border-width: 0;
|
|
65
|
+
outline: 0;
|
|
66
|
+
text-decoration: none;
|
|
67
|
+
font: inherit;
|
|
68
|
+
list-style: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
kendo-sortable {
|
|
72
|
+
display: block;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
// Links
|
|
77
|
+
.k-link,
|
|
78
|
+
.k-link:hover {
|
|
79
|
+
color: inherit;
|
|
80
|
+
text-decoration: none;
|
|
81
|
+
outline: 0;
|
|
82
|
+
cursor: pointer;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Outline
|
|
86
|
+
.k-content {
|
|
87
|
+
outline: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Centering
|
|
91
|
+
.k-centered {
|
|
92
|
+
position: absolute;
|
|
93
|
+
top: 50%;
|
|
94
|
+
left: 50%;
|
|
95
|
+
transform: translate(-50%, -50%);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Disable mouse events
|
|
99
|
+
.k-no-click {
|
|
100
|
+
pointer-events: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Off-screen container used during PDF export
|
|
104
|
+
.k-pdf-export-shadow {
|
|
105
|
+
position: absolute;
|
|
106
|
+
overflow: hidden;
|
|
107
|
+
left: -15000px;
|
|
108
|
+
width: 14400px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// PDF export icons fix
|
|
112
|
+
.kendo-pdf-hide-pseudo-elements::before,
|
|
113
|
+
.kendo-pdf-hide-pseudo-elements::after {
|
|
114
|
+
display: none !important; // stylelint-disable-line declaration-no-important
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Dirty indicator
|
|
118
|
+
.k-dirty {
|
|
119
|
+
margin: 0;
|
|
120
|
+
padding: 0;
|
|
121
|
+
width: 0;
|
|
122
|
+
height: 0;
|
|
123
|
+
border-width: 3px;
|
|
124
|
+
border-style: solid;
|
|
125
|
+
border-block-start-color: currentColor;
|
|
126
|
+
border-block-end-color: transparent;
|
|
127
|
+
border-inline-start-color: transparent;
|
|
128
|
+
border-inline-end-color: currentColor;
|
|
129
|
+
position: absolute;
|
|
130
|
+
inset-block-start: 0;
|
|
131
|
+
inset-inline-end: 0;
|
|
132
|
+
}
|
|
133
|
+
}
|
package/scss/styles/_layout.scss
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
@mixin kendo-core--styles--layout() {
|
|
2
|
+
.k-body {
|
|
3
|
+
@include typography(
|
|
4
|
+
var( --kendo-font-size, inherit ),
|
|
5
|
+
var( --kendo-font-family, inherit ),
|
|
6
|
+
var( --kendo-line-height, normal ),
|
|
7
|
+
var( --kendo-font-weight, normal ),
|
|
8
|
+
var( --kendo-letter-spacing, normal ),
|
|
9
|
+
);
|
|
10
|
+
@include fill(
|
|
11
|
+
var( --kendo-body-text, initial ),
|
|
12
|
+
var( --kendo-body-bg, initial )
|
|
13
|
+
);
|
|
14
|
+
margin: 0;
|
|
15
|
+
}
|
|
2
16
|
|
|
3
17
|
// Basic layout
|
|
4
18
|
.k-hstack {
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
@mixin kendo-core--styles--loading() {
|
|
2
|
+
// Loading mask
|
|
3
|
+
.k-loading-mask,
|
|
4
|
+
.k-loading-image,
|
|
5
|
+
.k-loading-color {
|
|
6
|
+
width: 100%;
|
|
7
|
+
height: 100%;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
position: absolute;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
|
|
13
|
+
*,
|
|
14
|
+
*::before,
|
|
15
|
+
*::after,
|
|
16
|
+
&::before,
|
|
17
|
+
&::after {
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.k-loading-mask {
|
|
23
|
+
z-index: $kendo-zindex-loading;
|
|
24
|
+
|
|
25
|
+
&.k-opaque {
|
|
26
|
+
.k-loading-color {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
.k-loading-text {
|
|
32
|
+
text-indent: -4000px;
|
|
33
|
+
text-align: center;
|
|
34
|
+
position: absolute;
|
|
35
|
+
color: $kendo-loading-text;
|
|
36
|
+
}
|
|
37
|
+
.k-loading-image {
|
|
38
|
+
z-index: 2;
|
|
39
|
+
color: $kendo-loading-text;
|
|
40
|
+
}
|
|
41
|
+
.k-loading-color {
|
|
42
|
+
background-color: $kendo-loading-bg;
|
|
43
|
+
opacity: $kendo-loading-opacity;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Loading indicator
|
|
47
|
+
.k-i-loading {
|
|
48
|
+
position: relative;
|
|
49
|
+
background-color: transparent;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
color: $kendo-loading-text;
|
|
52
|
+
|
|
53
|
+
&::before,
|
|
54
|
+
&::after {
|
|
55
|
+
box-sizing: border-box;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.k-i-loading::before,
|
|
60
|
+
.k-i-loading::after,
|
|
61
|
+
.k-loading-image::before,
|
|
62
|
+
.k-loading-image::after {
|
|
63
|
+
position: absolute;
|
|
64
|
+
top: 50%;
|
|
65
|
+
left: 50%;
|
|
66
|
+
display: inline-block;
|
|
67
|
+
content: "";
|
|
68
|
+
box-sizing: inherit;
|
|
69
|
+
border-radius: 50%;
|
|
70
|
+
border-width: .05em;
|
|
71
|
+
border-style: solid;
|
|
72
|
+
border-color: currentColor;
|
|
73
|
+
border-top-color: transparent;
|
|
74
|
+
border-bottom-color: transparent;
|
|
75
|
+
background-color: transparent;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.k-icon.k-i-loading::before,
|
|
79
|
+
.k-icon.k-i-loading::after {
|
|
80
|
+
content: "";
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.k-i-loading::before,
|
|
84
|
+
.k-loading-image::before {
|
|
85
|
+
margin-top: -.5em;
|
|
86
|
+
margin-left: -.5em;
|
|
87
|
+
width: 1em;
|
|
88
|
+
height: 1em;
|
|
89
|
+
animation: k-loading-animation .7s linear infinite;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.k-i-loading::after,
|
|
93
|
+
.k-loading-image::after {
|
|
94
|
+
margin-top: -.25em;
|
|
95
|
+
margin-left: -.25em;
|
|
96
|
+
width: .5em;
|
|
97
|
+
height: .5em;
|
|
98
|
+
animation: k-loading-animation reverse 1.4s linear infinite;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.k-loading-image::before,
|
|
102
|
+
.k-loading-image::after {
|
|
103
|
+
content: "";
|
|
104
|
+
// See https://github.com/telerik/kendo-themes/issues/1925
|
|
105
|
+
border-width: 1px; // TODO: Remove once we drop IE support
|
|
106
|
+
border-width: clamp( .015em, 1px, 1px );
|
|
107
|
+
font-size: 4em;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Loading animation
|
|
111
|
+
@keyframes k-loading-animation {
|
|
112
|
+
0% {
|
|
113
|
+
transform: rotate(0deg);
|
|
114
|
+
}
|
|
115
|
+
100% {
|
|
116
|
+
transform: rotate(360deg);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@mixin kendo-core--styles--selection() {
|
|
2
|
+
.k-marquee {
|
|
3
|
+
position: absolute;
|
|
4
|
+
z-index: 100000;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.k-marquee-color,
|
|
8
|
+
.k-marquee-text {
|
|
9
|
+
position: absolute;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
width: 100%;
|
|
13
|
+
height: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.k-marquee-color {
|
|
17
|
+
color: $kendo-selected-text;
|
|
18
|
+
background-color: k-get-theme-color-var( primary-60, #{$kendo-selected-bg} );
|
|
19
|
+
border-color: k-get-theme-color-var( primary-100, #{$kendo-selected-border} );
|
|
20
|
+
opacity: .6;
|
|
21
|
+
}
|
|
22
|
+
.k-marquee-text {
|
|
23
|
+
color: $kendo-selected-text;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
@import "./_asp-fallback.scss";
|
|
3
3
|
@import "./_layout.scss";
|
|
4
4
|
@import "./_normalize.scss";
|
|
5
|
+
@import "./_base.scss";
|
|
6
|
+
@import "./_loading.scss";
|
|
7
|
+
@import "./_selection.scss";
|
|
5
8
|
|
|
6
9
|
|
|
7
10
|
@mixin kendo-core--styles() {
|
|
@@ -9,4 +12,7 @@
|
|
|
9
12
|
@include kendo-core--styles--asp-fallback();
|
|
10
13
|
@include kendo-core--styles--layout();
|
|
11
14
|
@include kendo-core--styles--normalize();
|
|
15
|
+
@include kendo-core--styles--base();
|
|
16
|
+
@include kendo-core--styles--loading();
|
|
17
|
+
@include kendo-core--styles--selection();
|
|
12
18
|
}
|