@progress/kendo-theme-utils 6.1.1-dev.1 → 6.1.1-dev.11

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.scss CHANGED
@@ -12,66 +12,171 @@ $equilateral-height: .8660254038 !default;
12
12
  // #endregion
13
13
 
14
14
  // #region @import "./_color.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_color.import.scss
15
+ /// Returns the alpha channel of a color.
16
+ /// @param {Color} $color - The color to get the alpha channel for.
17
+ /// @return {Number} - The alpha channel of the color.
18
+ ///
19
+ /// @example scss - Usage
20
+ /// @debug k-color-alpha( rgba( 0, 0, 0, 0.5 ) ); // => 0.5
21
+ /// @debug k-color-alpha( #000 ); // => 1
15
22
  @function k-color-alpha( $color ) {
16
23
  @return alpha( $color );
17
24
  }
18
25
 
26
+ /// Returns the red channel of a color.
27
+ /// @param {Color} $color - The color to get the red channel for.
28
+ /// @return {Number} - The red channel of the color.
29
+ ///
30
+ /// @example scss - Usage
31
+ /// @debug k-color-red( #ff0000 ); // => 255
19
32
  @function k-color-red( $color ) {
20
33
  @return red( $color );
21
34
  }
22
35
 
36
+ /// Returns the green channel of a color.
37
+ /// @param {Color} $color - The color to get the green channel for.
38
+ /// @return {Number} - The green channel of the color.
39
+ ///
40
+ /// @example scss - Usage
41
+ /// @debug k-color-green( #00ff00 ); // => 255
23
42
  @function k-color-green( $color ) {
24
43
  @return green( $color );
25
44
  }
26
45
 
46
+ /// Returns the blue channel of a color.
47
+ /// @param {Color} $color - The color to get the blue channel for.
48
+ /// @return {Number} - The blue channel of the color.
49
+ ///
50
+ /// @example scss - Usage
51
+ /// @debug k-color-blue( #0000ff ); // => 255
27
52
  @function k-color-blue( $color ) {
28
53
  @return blue( $color );
29
54
  }
30
55
 
56
+ /// Returns the hue of a color.
57
+ /// @param {Color} $color - The color to get the hue for.
58
+ /// @return {Number} - The hue of the color.
59
+ ///
60
+ /// @example scss - Usage
61
+ /// @debug k-color-hue( #e1d7d2 ); // => 20deg
31
62
  @function k-color-hue( $color ) {
32
63
  @return hue( $color );
33
64
  }
34
65
 
66
+ /// Returns the saturation of a color.
67
+ /// @param {Color} $color - The color to get the saturation for.
68
+ /// @return {Number} - The saturation of the color.
69
+ ///
70
+ /// @example scss - Usage
71
+ /// @debug k-color-saturation( #e1d7d2 ); // => 20%
35
72
  @function k-color-saturation( $color ) {
36
73
  @return saturation( $color );
37
74
  }
38
75
 
76
+ /// Returns the lightness of a color.
77
+ /// @param {Color} $color - The color to get the lightness for.
78
+ /// @return {Number} - The lightness of the color.
79
+ ///
80
+ /// @example scss - Usage
81
+ /// @debug k-color-lightness( #e1d7d2 ); // => 80%
39
82
  @function k-color-lightness( $color ) {
40
83
  @return lightness( $color );
41
84
  }
42
85
 
86
+ /// Returns a color that is a mix of two colors.
87
+ /// @param {Color} $color1 - The first color.
88
+ /// @param {Color} $color2 - The second color.
89
+ /// @param {Number} $weight - The weight of the first color in the mix.
90
+ /// @return {Color} - The mixed color.
91
+ ///
92
+ /// @example scss - Usage
93
+ /// @debug k-color-mix( #f00, #00f ); // => #800080
43
94
  @function k-color-mix( $color1, $color2, $weight: 50% ) {
44
95
  @return mix( $color1, $color2, $weight );
45
96
  }
46
97
 
98
+ /// Makes a color darker by decreasing its lightness.
99
+ /// @param {Color} $color - The color to darken.
100
+ /// @param {Number} $amount - The amount to darken the color.
101
+ /// @return {Color} - The darkened color.
102
+ ///
103
+ /// @example scss - Usage
104
+ /// @debug k-color-darken( #f00, 10% ); // => #e60000
47
105
  @function k-color-darken( $color, $amount) {
48
106
  @return darken( $color, $amount );
49
107
  }
50
108
 
109
+ /// Makes a color lighter by increasing its lightness.
110
+ /// @param {Color} $color - The color to lighten.
111
+ /// @param {Number} $amount - The amount to lighten the color.
112
+ /// @return {Color} - The lightened color.
113
+ ///
114
+ /// @example scss - Usage
115
+ /// @debug k-color-lighten( #f00, 10% ); // => #ff1a1a
51
116
  @function k-color-lighten( $color, $amount) {
52
117
  @return lighten( $color, $amount );
53
118
  }
54
119
 
120
+ /// Increases or decreases the hue of a color.
121
+ /// @param {Color} $color - The color to adjust the hue for.
122
+ /// @param {Number} $degrees - The amount to adjust the hue.
123
+ /// @return {Color} - The adjusted color.
124
+ ///
125
+ /// @example scss - Usage
126
+ /// @debug k-color-adjust-hue( #f00, 10deg ); // => #ff1a00
55
127
  @function k-color-adjust-hue( $color, $degrees ) {
56
128
  @return adjust-hue( $color, $degrees );
57
129
  }
58
130
 
131
+ /// Increases the saturation of a color.
132
+ /// @param {Color} $color - The color to saturate.
133
+ /// @param {Number} $amount - The amount to saturate the color.
134
+ /// @return {Color} - The saturated color.
135
+ ///
136
+ /// @example scss - Usage
137
+ /// @debug k-color-saturate( #f00, 10% ); // => #ff3333
59
138
  @function k-color-saturate( $color, $amount ) {
60
139
  @return saturate( $color, $amount );
61
140
  }
62
141
 
142
+ /// Decreases the saturation of a color.
143
+ /// @param {Color} $color - The color to desaturate.
144
+ /// @param {Number} $amount - The amount to desaturate the color.
145
+ /// @return {Color} - The desaturated color.
146
+ ///
147
+ /// @example scss - Usage
148
+ /// @debug k-color-desaturate( #f00, 10% ); // => #e60000
63
149
  @function k-color-desaturate( $color, $amount ) {
64
150
  @return desaturate( $color, $amount );
65
151
  }
66
152
 
153
+ /// Returns a gray color with the same lightness as the input color.
154
+ /// @param {Color} $color - The color to convert to grayscale.
155
+ /// @return {Color} - The grayscale color.
156
+ ///
157
+ /// @example scss - Usage
158
+ /// @debug k-color-grayscale( #f00 ); // => #808080
67
159
  @function k-color-grayscale( $color ) {
68
160
  @return grayscale( $color );
69
161
  }
70
162
 
163
+ /// Returns the RGB complement of a color. This identical to adjusting the hue
164
+ /// by 180 degrees.
165
+ /// @param {Color} $color - The color to get the complement for.
166
+ /// @return {Color} - The complement color.
167
+ ///
168
+ /// @example scss - Usage
169
+ /// @debug k-color-complement( #f00 ); // => #00ffff
71
170
  @function k-color-complement( $color ) {
72
171
  @return complement( $color );
73
172
  }
74
173
 
174
+ /// Returns the inverse of a color.
175
+ /// @param {Color} $color - The color to invert.
176
+ /// @return {Color} - The inverted color.
177
+ ///
178
+ /// @example scss - Usage
179
+ /// @debug k-color-invert( #f00 ); // => #00ffff
75
180
  @function k-color-invert( $color ) {
76
181
  @return invert( $color );
77
182
  }
@@ -351,17 +456,31 @@ $_linear-channel-values: (
351
456
  1
352
457
  );
353
458
 
354
- // The contrast ratio to reach against white, to determine if color changes from "light" to "dark".
355
- // Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
356
- // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
357
- // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
459
+ /// The contrast ratio to reach against white, to determine if color changes from "light" to "dark".
460
+ /// Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
461
+ /// @type Number
462
+ /// @group accessibility
463
+ ///
464
+ /// @link https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
465
+ /// @link https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
358
466
  $wcag-min-contrast-ratio: 7 !default;
467
+ /// Default dark color for WCAG 2.0.
468
+ /// @type Color
469
+ /// @group accessibility
359
470
  $wcag-dark: black !default;
471
+ /// Default light color for WCAG 2.0.
472
+ /// @type Color
473
+ /// @group accessibility
360
474
  $wcag-light: white !default;
361
475
 
362
- // Calculate the luminance for a color.
363
- // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
364
- // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
476
+ /// Calculate the relative luminance for a color.
477
+ /// @param {Color} $color - The color to calculate the relative luminance for.
478
+ /// @return {Number} - The relative luminance for the color.
479
+ ///
480
+ /// @group accessibility
481
+ ///
482
+ /// @link https://www.w3.org/TR/WCAG/#dfn-relative-luminance
483
+ /// @link https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
365
484
  @function k-color-luminance( $color ) {
366
485
  $red: k-list-nth( $_linear-channel-values, k-color-red( $color ) + 1 );
367
486
  $green: k-list-nth( $_linear-channel-values, k-color-green( $color ) + 1 );
@@ -370,9 +489,15 @@ $wcag-light: white !default;
370
489
  @return .2126 * $red + .7152 * $green + .0722 * $blue;
371
490
  }
372
491
 
373
- // Calculate the luminance for a color.
374
- // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
375
- // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
492
+ /// Calculates contrast ratio between two colors
493
+ /// @param {Color} $background - The background color
494
+ /// @param {Color} $foreground - The foreground color
495
+ /// @return {Number} - The contrast ratio between the two colors
496
+ ///
497
+ /// @group accessibility
498
+ ///
499
+ /// @link https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
500
+ /// @link https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
376
501
  @function k-color-contrast-ratio( $background, $foreground ) {
377
502
  // sass-lint:disable-block variable-name-format
378
503
  $backLum: k-color-luminance( $background ) + .05;
@@ -381,15 +506,34 @@ $wcag-light: white !default;
381
506
  @return k-math-div( k-math-max( $backLum, $foreLum ), k-math-min( $backLum, $foreLum ) );
382
507
  }
383
508
 
509
+ /// Checks if a color is dark
510
+ /// @param {Color} $color - The color to check
511
+ /// @return {Boolean} - True if the color is dark, false otherwise
512
+ ///
513
+ /// @group accessibility
384
514
  @function k-is-dark( $color ) {
385
515
  @return if( k-color-luminance( $color ) < .5, true, false );
386
516
  }
517
+
518
+ /// Checks if a color is light
519
+ /// @param {Color} $color - The color to check
520
+ /// @return {Boolean} - True if the color is light, false otherwise
521
+ ///
522
+ /// @group accessibility
387
523
  @function k-is-light( $color ) {
388
524
  @return if( k-color-luminance( $color ) < .5, false, true );
389
525
  }
390
526
 
391
527
 
392
- // Contrast functions
528
+ /// Calculates the contrast ratio between a background color and a foreground color.
529
+ /// If the contrast ratio is not high enough, it will return the color with the highest contrast ratio.
530
+ /// @param {Color} $background - The background color
531
+ /// @param {Color} $dark - The dark color to use as a fallback
532
+ /// @param {Color} $light - The light color to use as a fallback
533
+ /// @param {Number} $min-ratio - The minimum contrast ratio to reach
534
+ /// @return {Color} - The color with the highest contrast ratio
535
+ ///
536
+ /// @group accessibility
393
537
  @function k-contrast-color( $background, $dark: $wcag-dark, $light: $wcag-light, $min-ratio: $wcag-min-contrast-ratio ) {
394
538
  $foregrounds: $light, $dark, #ffffff, #000000;
395
539
  $max-ratio: 0;
@@ -460,13 +604,38 @@ $kendo-color-level-step: 8% !default;
460
604
  @return k-color-mix( $base, $color, $level * $kendo-color-level-step );
461
605
  }
462
606
 
607
+ /// Makes a color lighter by mixing it with white
608
+ /// @param {Color} $color - The color to lighten
609
+ /// @param {Number} $level - The amount to lighten the color
610
+ /// @return {Color} - The lightened color
611
+ ///
612
+ /// @group color-system
613
+ ///
614
+ /// @example scss - Usage
615
+ /// @debug k-color-tint( #f00, 1 ); // => #ff1a1a
463
616
  @function k-color-tint( $color, $level: 1 ) {
464
617
  @return k-color-level( $color, -$level );
465
618
  }
619
+
620
+ /// Makes a color darker by mixing it with black
621
+ /// @param {Color} $color - The color to darken
622
+ /// @param {Number} $level - The amount to darken the color
623
+ /// @return {Color} - The darkened color
624
+ ///
625
+ /// @group color-system
626
+ ///
627
+ /// @example scss - Usage
628
+ /// @debug k-color-shade( #f00, 1 ); // => #e60000
466
629
  @function k-color-shade( $color, $level: 1 ) {
467
630
  @return k-color-level( $color, $level );
468
631
  }
469
632
 
633
+ /// Shades the color in light themes and tints it in dark themes
634
+ /// @param {Color} $color - The color to shade or tint
635
+ /// @param {Number} $level - The amount to shade or tint the color
636
+ /// @return {Color} - The shaded or tinted color
637
+ ///
638
+ /// @group color-system
470
639
  @function k-try-shade( $color, $level: 1 ) {
471
640
  $_dark-theme: if( k-meta-variable-exists( kendo-is-dark-theme ), $kendo-is-dark-theme, false );
472
641
 
@@ -476,6 +645,13 @@ $kendo-color-level-step: 8% !default;
476
645
 
477
646
  @return k-color-shade( $color, $level );
478
647
  }
648
+
649
+ /// Tints the color in light themes and shades it in dark themes
650
+ /// @param {Color} $color - The color to tint or shade
651
+ /// @param {Number} $level - The amount to tint or shade the color
652
+ /// @return {Color} - The tinted or shaded color
653
+ ///
654
+ /// @group color-system
479
655
  @function k-try-tint( $color, $level: 1 ) {
480
656
  $_dark-theme: if( k-meta-variable-exists( kendo-is-dark-theme ), $kendo-is-dark-theme, false );
481
657
 
@@ -486,7 +662,12 @@ $kendo-color-level-step: 8% !default;
486
662
  @return k-color-tint( $color, $level );
487
663
  }
488
664
 
489
-
665
+ /// Darkens the color in light themes and lightens it in dark themes
666
+ /// @param {Color} $color - The color to darken or lighten
667
+ /// @param {Number} $level - The amount to darken or lighten the color
668
+ /// @return {Color} - The darkened or lightened color
669
+ ///
670
+ /// @group color-system
490
671
  @function k-try-darken( $color, $amount ) {
491
672
  $_dark-theme: if( k-meta-variable-exists( kendo-is-dark-theme ), $kendo-is-dark-theme, false );
492
673
 
@@ -496,6 +677,12 @@ $kendo-color-level-step: 8% !default;
496
677
  @return k-color-darken( $color, $amount );
497
678
  }
498
679
 
680
+ /// Lightens the color in light themes and darkens it in dark themes
681
+ /// @param {Color} $color - The color to lighten or darken
682
+ /// @param {Number} $level - The amount to lighten or darken the color
683
+ /// @return {Color} - The lightened or darkened color
684
+ ///
685
+ /// @group color-system
499
686
  @function k-try-lighten( $color, $amount ) {
500
687
  $_dark-theme: if( k-meta-variable-exists( kendo-is-dark-theme ), $kendo-is-dark-theme, false );
501
688
 
@@ -505,6 +692,15 @@ $kendo-color-level-step: 8% !default;
505
692
  @return k-color-lighten( $color, $amount );
506
693
  }
507
694
 
695
+ /// Converts a color with alpha to solid color mixed with a background color
696
+ /// @param {Color} $color - The color to convert
697
+ /// @param {Color} $bg - The background color
698
+ /// @return {Color} - The converted color
699
+ ///
700
+ /// @group color-system
701
+ ///
702
+ /// @example scss - Usage
703
+ /// @debug k-rgba-to-mix( rgba( #f00, 0.5 ), #fff ); // => #ff8080
508
704
  @function k-rgba-to-mix( $color, $bg ) {
509
705
  $percent: k-color-alpha( $color ) * 100%;
510
706
 
@@ -567,7 +763,11 @@ $_kendo-svg-escaped-characters: (
567
763
  (")", "%29")
568
764
  ) !default;
569
765
 
570
- // See https://codepen.io/kevinweber/pen/dXWoRw
766
+ /// Escapes SVG characters in a string
767
+ /// @param {String} $string - The string to escape
768
+ /// @return {String} - The escaped string
769
+ ///
770
+ /// @link https://codepen.io/kevinweber/pen/dXWoRw
571
771
  @function k-escape-svg($string) {
572
772
  @if k-string-index($string, "data:image/svg+xml") {
573
773
  @each $char, $encoded in $_kendo-svg-escaped-characters {
@@ -590,6 +790,9 @@ $_kendo-escape-class-name: (
590
790
  "/": "\\/"
591
791
  );
592
792
 
793
+ /// Escapes special characters in a class name
794
+ /// @param {String} $text - The string to escape
795
+ /// @return {String} - The escaped string
593
796
  @function k-escape-class-name( $text ) {
594
797
  $_text: $text;
595
798
 
@@ -602,40 +805,110 @@ $_kendo-escape-class-name: (
602
805
 
603
806
  // #endregion
604
807
  // #region @import "./_lang.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_lang.import.scss
808
+ /// Returns the value of a variable if it is not null,
809
+ /// otherwise returns the fallback value.
810
+ /// @param {Any} $var - The variable to check.
811
+ /// @param {Any} $fallback - The fallback value.
812
+ /// @return {Any} - The value of the variable or the fallback value.
813
+ ///
814
+ /// @example scss - Usage
815
+ /// $foo: null;
816
+ /// @debug k-if-var( $foo, "bar" ); // => "bar"
817
+ /// $foo: "baz";
818
+ /// @debug k-if-var( $foo, "bar" ); // => "baz"
605
819
  @function k-if-var( $var, $fallback ) {
606
820
  @return if( $var != null, $var, $fallback );
607
821
  }
608
822
 
609
823
  // #endregion
610
824
  // #region @import "./_list.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_list.import.scss
825
+ /// Returns a copy of `$list` with `$val` appended to the end.
826
+ /// @param {List} $list - The list to process.
827
+ /// @param {Any} $val - The value to append to `$list`.
828
+ /// @param {String} $separator - The separator to use between `$list` and `$val`.
829
+ /// @return {List} - A copy of `$list` with `$val` appended to the end.
830
+ ///
831
+ /// @example scss - Usage
832
+ /// @debug k-list-append( ( "foo", "bar" ), "baz" ); // => "foo, bar, baz"
611
833
  @function k-list-append( $list, $val, $separator: auto ) {
612
834
  @return append( $list, $val, $separator );
613
835
  }
614
836
 
837
+ /// Checks whether `$list` contains `$value`.
838
+ /// @param {List} $list - The list to check.
839
+ /// @param {Any} $value - The value to check for.
840
+ /// @return {Boolean} - Whether `$list` contains `$value`.
841
+ ///
842
+ /// @example scss - Usage
843
+ /// @debug k-list-includes( ( "foo", "bar" ), "foo" ); // => true
844
+ /// @debug k-list-includes( ( "foo", "bar" ), "baz" ); // => false
615
845
  @function k-list-includes( $list, $value ) {
616
846
  @return k-list-index( $list, $value ) != null;
617
847
  }
618
848
 
849
+ /// Returns the index of `$value` in `$list`.
850
+ /// @param {List} $list - The list to check.
851
+ /// @param {Any} $value - The value to check for.
852
+ /// @return {Number} - The index of `$value` in `$list`.
853
+ ///
854
+ /// @example scss - Usage
855
+ /// @debug k-list-index( ( "foo", "bar" ), "foo" ); // => 1
619
856
  @function k-list-index( $list, $value ) {
620
857
  @return index( $list, $value );
621
858
  }
622
859
 
860
+ /// Returns whether `$list` is bracketed.
861
+ /// @param {List} $list - The list to check.
862
+ /// @return {Boolean} - Whether `$list` is bracketed.
863
+ ///
864
+ /// @example scss - Usage
865
+ /// @debug k-list-is-bracketed( ( "foo", "bar" ) ); // => false
866
+ /// @debug k-list-is-bracketed( [ "foo", "bar" ] ); // => true
623
867
  @function k-list-is-bracketed( $list ) {
624
868
  @return is-bracketed( $list );
625
869
  }
626
870
 
871
+ /// Joins two lists together.
872
+ /// @param {List} $list1 - The first list to join.
873
+ /// @param {List} $list2 - The second list to join.
874
+ /// @param {String} $separator - The separator to use between `$list1` and `$list2`.
875
+ /// @param {Boolean} $bracketed - Whether the result should be bracketed.
876
+ /// @return {List} - The joined list.
877
+ ///
878
+ /// @example scss - Usage
879
+ /// @debug k-list-join( ( "foo", "bar" ), ( "baz", "qux" ) ); // => "foo, bar, baz, qux"
880
+ /// @debug k-list-join( ( "foo", "bar" ), ( "baz", "qux" ), " " ); // => "foo bar baz qux"
627
881
  @function k-list-join( $list1, $list2, $separator: auto, $bracketed: auto ) {
628
882
  @return join( $list1, $list2, $separator, $bracketed );
629
883
  }
630
884
 
885
+ /// Returns the length of `$list`.
886
+ /// @param {List} $list - The list to check.
887
+ /// @return {Number} - The length of `$list`.
888
+ ///
889
+ /// @example scss - Usage
890
+ /// @debug k-list-length( ( "foo", "bar" ) ); // => 2
631
891
  @function k-list-length( $list ) {
632
892
  @return length( $list );
633
893
  }
634
894
 
895
+ /// Returns the nth item in `$list`.
896
+ /// @param {List} $list - The list to check.
897
+ /// @param {Number} $n - The index of the item to return.
898
+ /// @return {Any} - The nth item in `$list`.
899
+ ///
900
+ /// @example scss - Usage
901
+ /// @debug k-list-nth( ( "foo", "bar" ), 1 ); // => "foo"
635
902
  @function k-list-nth( $list, $n ) {
636
903
  @return nth( $list, $n );
637
904
  }
638
905
 
906
+ /// Reverse the order of items in `$list`.
907
+ /// @param {List} $list - The list to reverse.
908
+ /// @return {List} - The reversed list.
909
+ ///
910
+ /// @example scss - Usage
911
+ /// @debug k-list-reverse( ( "foo", "bar" ) ); // => "bar, foo"
639
912
  @function k-list-reverse( $list: null ) {
640
913
  $result: ();
641
914
 
@@ -654,64 +927,185 @@ $_kendo-escape-class-name: (
654
927
  @return $result;
655
928
  }
656
929
 
930
+ /// Returns the separator of `$list`.
931
+ /// @param {List} $list - The list to check.
932
+ /// @return {String} - The separator of `$list`.
933
+ ///
934
+ /// @example scss - Usage
935
+ /// @debug k-list-separator( ( "foo", "bar" ) ); // => ","
657
936
  @function k-list-separator( $list ) {
658
937
  @return list-separator( $list );
659
938
  }
660
939
 
940
+ /// Returns a copy of `$list` with `$val` inserted at `$n`.
941
+ /// @param {List} $list - The list to process.
942
+ /// @param {Number} $n - The index at which to insert `$val`.
943
+ /// @param {Any} $val - The value to insert.
944
+ /// @return {List} - A copy of `$list` with `$val` inserted at `$n`.
945
+ ///
946
+ /// @example scss - Usage
947
+ /// @debug k-list-set-nth( ( "foo", "bar" ), 1, "baz" ); // => "baz, bar"
661
948
  @function k-list-set-nth( $list, $n, $value ) {
662
949
  @return set-nth( $list, $n, $value );
663
950
  }
664
951
 
952
+ /// Combines two lists into a single list of two-item lists.
953
+ /// @param {List} $list1 - The first list to combine.
954
+ /// @param {List} $list2 - The second list to combine.
955
+ /// @return {List} - A list of two-item lists.
956
+ ///
957
+ /// @example scss - Usage
958
+ /// @debug k-list-zip( ( "foo", "bar" ), ( "baz", "qux" ) ); // => ((foo, baz), (bar, qux))
665
959
  @function k-list-zip( $lists... ) {
666
960
  @return zip( $lists... );
667
961
  }
668
962
 
669
963
  // #endregion
670
964
  // #region @import "./_math.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_math.import.scss
965
+ /// Returns the absolute value of a number.
966
+ /// @param {Number} $number - The number to get the absolute value of.
967
+ /// @return {Number} - The absolute value of `$number`.
968
+ ///
969
+ /// @example scss - Usage
970
+ /// @debug k-math-abs( -10 ); // => 10
671
971
  @function k-math-abs( $number ) {
672
972
  @return abs( $number );
673
973
  }
674
974
 
975
+ /// Returns the smallest integer greater than or equal to a number.
976
+ /// @param {Number} $number - The number to get the ceiling of.
977
+ /// @return {Number} - The ceiling of `$number`.
978
+ ///
979
+ /// @example scss - Usage
980
+ /// @debug k-math-ceil( 10.1 ); // => 11
675
981
  @function k-math-ceil( $number ) {
676
982
  @return ceil( $number );
677
983
  }
678
984
 
679
- @function k-math-clamp( $value, $min, $max ) {
680
- @return k-math-max( $min, k-math-min( $max, $value ) );
681
- }
682
-
985
+ /// Returns the largest integer less than or equal to a number.
986
+ /// @param {Number} $number - The number to get the floor of.
987
+ /// @return {Number} - The floor of `$number`.
988
+ ///
989
+ /// @example scss - Usage
990
+ /// @debug k-math-floor( 10.9 ); // => 10
991
+ @function k-math-floor( $number ) {
992
+ @return floor( $number );
993
+ }
994
+
995
+ /// Restricts `$number` to the range between `$min` and `$max`. If `$number` is
996
+ /// less than `$min`, `$min` is returned. If `$number` is greater than `$max`,
997
+ /// `$max` is returned. Otherwise, `$number` is returned.
998
+ /// @param {Number} $number - The number to clamp.
999
+ /// @param {Number} $min - The minimum value.
1000
+ /// @param {Number} $max - The maximum value.
1001
+ /// @return {Number} - The clamped number.
1002
+ ///
1003
+ /// @example scss - Usage
1004
+ /// @debug k-math-clamp( 10, 0, 5 ); // => 5
1005
+ @function k-math-clamp( $number, $min, $max ) {
1006
+ @return k-math-max( $min, k-math-min( $max, $number ) );
1007
+ }
1008
+
1009
+ /// Returns whether two numbers have compatible units.
1010
+ /// @param {Number} $a - The first number.
1011
+ /// @param {Number} $b - The second number.
1012
+ /// @return {Boolean} - Whether the numbers have compatible units.
1013
+ ///
1014
+ /// @example scss - Usage
1015
+ /// @debug k-math-compatible( 10px, 10px ); // => true
1016
+ /// @debug k-math-compatible( 10px, 10em ); // => false
683
1017
  @function k-math-compatible( $a, $b ) {
684
1018
  @return comparable( $a, $b );
685
1019
  }
686
1020
 
1021
+ /// Returns the quotient of two numbers.
1022
+ /// @param {Number} $a - The dividend.
1023
+ /// @param {Number} $b - The divisor.
1024
+ /// @return {Number} - The quotient of `$a` and `$b`.
1025
+ ///
1026
+ /// @example scss - Usage
1027
+ /// @debug k-math-div( 10, 2 ); // => 5
1028
+ /// @debug k-math-div( 10px, 2 ); // => 5px
687
1029
  @function k-math-div( $a, $b ) {
688
1030
  @return ( $a / $b );
689
1031
  }
690
1032
 
1033
+ /// Returns whether `$number` has no units.
1034
+ /// @param {Number} $number - The number to check.
1035
+ /// @return {Boolean} - Whether `$number` has no units.
1036
+ ///
1037
+ /// @example scss - Usage
1038
+ /// @debug k-math-is-unitless( 10 ); // => true
1039
+ /// @debug k-math-is-unitless( 10px ); // => false
691
1040
  @function k-math-is-unitless( $number ) {
692
1041
  @return unitless( $number );
693
1042
  }
694
1043
 
1044
+ /// Returns the larger of two numbers.
1045
+ /// @param {Number} $a - The first number.
1046
+ /// @param {Number} $b - The second number.
1047
+ /// @return {Number} - The larger of `$a` and `$b`.
1048
+ ///
1049
+ /// @example scss - Usage
1050
+ /// @debug k-math-max( 10, 20 ); // => 20
1051
+ /// @debug k-math-max( 10px, 20px ); // => 20px
695
1052
  @function k-math-max( $a, $b ) {
696
1053
  @return max( $a, $b );
697
1054
  }
698
1055
 
1056
+ /// Returns the smaller of two numbers.
1057
+ /// @param {Number} $a - The first number.
1058
+ /// @param {Number} $b - The second number.
1059
+ /// @return {Number} - The smaller of `$a` and `$b`.
1060
+ ///
1061
+ /// @example scss - Usage
1062
+ /// @debug k-math-min( 10, 20 ); // => 10
1063
+ /// @debug k-math-min( 10px, 20px ); // => 10px
699
1064
  @function k-math-min( $a, $b ) {
700
1065
  @return min( $a, $b );
701
1066
  }
702
1067
 
1068
+ /// Returns the remainder of two numbers.
1069
+ /// @param {Number} $a - The dividend.
1070
+ /// @param {Number} $b - The divisor.
1071
+ /// @return {Number} - The remainder of `$a` and `$b`.
1072
+ ///
1073
+ /// @example scss - Usage
1074
+ /// @debug k-math-mod( 10, 3 ); // => 1
1075
+ /// @debug k-math-mod( 10px, 3 ); // => 1px
703
1076
  @function k-math-mod( $a, $b ) {
704
1077
  @return ( $a % $b );
705
1078
  }
706
1079
 
1080
+ /// Returns the product of two numbers.
1081
+ /// @param {Number} $a - The first number.
1082
+ /// @param {Number} $b - The second number.
1083
+ /// @return {Number} - The product of `$a` and `$b`.
1084
+ ///
1085
+ /// @example scss - Usage
1086
+ /// @debug k-math-mul( 10, 2 ); // => 20
1087
+ /// @debug k-math-mul( 10px, 2 ); // => 20px
707
1088
  @function k-math-mul( $a, $b ) {
708
1089
  @return ( $a * $b );
709
1090
  }
710
1091
 
1092
+ /// Converts a unitless number to a percentage.
1093
+ /// @param {Number} $number - The number to convert.
1094
+ /// @return {Number} - The percentage.
1095
+ ///
1096
+ /// @example scss - Usage
1097
+ /// @debug k-math-percentage( 0.5 ); // => 50%
711
1098
  @function k-math-percentage( $number ) {
712
- @return ( $number * 100% );
1099
+ @return percentage( $number );
713
1100
  }
714
1101
 
1102
+ /// Returns the result of raising `$x` to the power of `$n`.
1103
+ /// @param {Number} $x - The base.
1104
+ /// @param {Number} $n - The exponent.
1105
+ /// @return {Number} - The result of raising `$x` to the power of `$n`.
1106
+ ///
1107
+ /// @example scss - Usage
1108
+ /// @debug k-math-pow( 2, 3 ); // => 8
715
1109
  @function k-math-pow( $x, $n ) {
716
1110
  $ret: 1;
717
1111
 
@@ -733,10 +1127,12 @@ $_kendo-escape-class-name: (
733
1127
 
734
1128
  }
735
1129
 
736
- @function k-math-percentage( $number ) {
737
- @return percentage( $number );
738
- }
739
-
1130
+ /// Returns a random number between 0 and 1.
1131
+ /// @param {Number} $limit - The upper limit of the random number.
1132
+ /// @return {Number} - A random number between 0 and 1.
1133
+ ///
1134
+ /// @example scss - Usage
1135
+ /// @debug k-math-random(); // => 0.123456789
740
1136
  @function k-math-random( $limit: null ) {
741
1137
  @if ( $limit == null ) {
742
1138
  @return random();
@@ -745,6 +1141,14 @@ $_kendo-escape-class-name: (
745
1141
  @return random( $limit );
746
1142
  }
747
1143
 
1144
+ /// Returns the result of rounding `$number` to the nearest integer
1145
+ /// using the specified `$precision`.
1146
+ /// @param {Number} $number - The number to round.
1147
+ /// @param {Number} $precision - The number of decimal places to round to.
1148
+ /// @return {Number} - The rounded number.
1149
+ ///
1150
+ /// @example scss - Usage
1151
+ /// @debug k-math-round( 10.123456789, 3 ); // => 10.123
748
1152
  @function k-math-round( $number, $precision: 0 ) {
749
1153
 
750
1154
  @if ( $precision == 0 ) {
@@ -756,10 +1160,22 @@ $_kendo-escape-class-name: (
756
1160
  @return k-math-div( round( $number * $pow ), $pow );
757
1161
  }
758
1162
 
1163
+ /// Returns a string representation of `$number`'s unit.
1164
+ /// @param {Number} $number - The number to get the unit of.
1165
+ /// @return {String} - The unit of `$number`.
1166
+ ///
1167
+ /// @example scss - Usage
1168
+ /// @debug k-math-unit( 10px ); // => px
759
1169
  @function k-math-unit( $number ) {
760
1170
  @return unit( $number );
761
1171
  }
762
1172
 
1173
+ /// Remove the unit from a number.
1174
+ /// @param {Number} $number - The number to remove the unit from.
1175
+ /// @return {Number} - The unitless number.
1176
+ ///
1177
+ /// @example scss - Usage
1178
+ /// @debug k-math-strip-unit( 10px ); // => 10
763
1179
  @function k-math-strip-unit($number) {
764
1180
  @if ( k-meta-type-of( $number ) == "number" ) and not k-math-is-unitless( $number ) {
765
1181
  @return k-math-div( $number, 1 * k-math-unit( $number) );
@@ -770,6 +1186,12 @@ $_kendo-escape-class-name: (
770
1186
 
771
1187
  // #endregion
772
1188
  // #region @import "./_map.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_map.import.scss
1189
+ /// Returns the value at `$key` in `$map`.
1190
+ /// @param {Map} $map - The map to get the value from.
1191
+ /// @param {Any} $key - The key to get the value for.
1192
+ ///
1193
+ /// @example scss - Usage
1194
+ /// @debug k-map-get( ( "foo": "bar" ), "foo" ); // => "bar"
773
1195
  @function k-map-get( $map, $keys... ) {
774
1196
  @each $key in $keys {
775
1197
  $map: map-get( $map, $key );
@@ -777,14 +1199,35 @@ $_kendo-escape-class-name: (
777
1199
  @return $map;
778
1200
  }
779
1201
 
1202
+ /// Returns whether `$map` has a value at `$key`.
1203
+ /// @param {Map} $map - The map to check.
1204
+ /// @param {Any} $key - The key to check.
1205
+ /// @return {Boolean} - Whether `$map` has a value at `$key`.
1206
+ ///
1207
+ /// @example scss - Usage
1208
+ /// @debug k-map-has( ( "foo": "bar" ), "foo" ); // => true
1209
+ /// @debug k-map-has( ( "foo": "bar" ), "bar" ); // => false
780
1210
  @function k-map-has-key( $map, $key ) {
781
1211
  @return map-has-key( $map, $key );
782
1212
  }
783
1213
 
1214
+ /// Returns a comma separated list of the keys in `$map`.
1215
+ /// @param {Map} $map - The map to get the keys from.
1216
+ /// @return {List} - A comma separated list of the keys in `$map`.
1217
+ ///
1218
+ /// @example scss - Usage
1219
+ /// @debug k-map-keys( ( "foo": "bar", "baz": "qux" ) ); // => "foo, baz"
784
1220
  @function k-map-keys( $map ) {
785
1221
  @return map-keys( $map );
786
1222
  }
787
1223
 
1224
+ /// Returns a map with the keys and values from `$map` and `$args`.
1225
+ /// @param {Map} $map - The map to merge.
1226
+ /// @param {Map} $args - The map to merge into `$map`.
1227
+ /// @return {Map} - A map with the keys and values from `$map` and `$args`.
1228
+ ///
1229
+ /// @example scss - Usage
1230
+ /// @debug k-map-merge( ( "foo": "bar" ), ( "baz": "qux" ) ); // => ( "foo": "bar", "baz": "qux" )
788
1231
  @function k-map-merge( $map, $args... ) {
789
1232
  @each $arg in $args {
790
1233
  $map: map-merge( $map, $arg );
@@ -792,14 +1235,35 @@ $_kendo-escape-class-name: (
792
1235
  @return $map;
793
1236
  }
794
1237
 
1238
+ /// Returns a map with the keys and values from `$map` except for `$keys`.
1239
+ /// @param {Map} $map - The map to remove keys from.
1240
+ /// @param {Any} $keys - The keys to remove from `$map`.
1241
+ /// @return {Map} - A map with the keys and values from `$map` except for `$keys`.
1242
+ ///
1243
+ /// @example scss - Usage
1244
+ /// @debug k-map-remove( ( "foo": "bar", "baz": "qux" ), "foo" ); // => ( "baz": "qux" )
795
1245
  @function k-map-remove( $map, $keys... ) {
796
1246
  @return map-remove( $map, $keys... );
797
1247
  }
798
1248
 
1249
+ /// Sets a single key and value in `$map`.
1250
+ /// @param {Map} $map - The map to set the value in.
1251
+ /// @param {Any} $key - The key to set the value for.
1252
+ /// @param {Any} $value - The value to set.
1253
+ /// @return {Map} - A map with the key and value set.
1254
+ ///
1255
+ /// @example scss - Usage
1256
+ /// @debug k-map-set( ( "foo": "bar" ), "baz", "qux" ); // => ( "foo": "bar", "baz": "qux" )
799
1257
  @function k-map-set( $map, $key, $value ) {
800
1258
  @return k-map-merge( $map, ( $key: $value ) );
801
1259
  }
802
1260
 
1261
+ /// Returns a comma separated list of the values in `$map`.
1262
+ /// @param {Map} $map - The map to get the values from.
1263
+ /// @return {List} - A comma separated list of the values in `$map`.
1264
+ ///
1265
+ /// @example scss - Usage
1266
+ /// @debug k-map-values( ( "foo": "bar", "baz": "qux" ) ); // => "bar, qux"
803
1267
  @function k-map-values( $map ) {
804
1268
  @return map-values( $map );
805
1269
  }
@@ -808,101 +1272,300 @@ $_kendo-escape-class-name: (
808
1272
  // #region @import "./_meta.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_meta.import.scss
809
1273
  // Adapted from https://css-tricks.com/snippets/sass/advanced-type-checking/
810
1274
 
1275
+ /// A wrapper around the `call()` function.
1276
+ /// Calls the function `$function` with the arguments `$args`.
1277
+ /// @param {Function} $function - The function to call.
1278
+ /// @param {List} $args - The arguments to pass to `$function`.
1279
+ /// @return {Any} - The result of calling `$function` with `$args`.
1280
+ ///
1281
+ /// @example scss - Usage
1282
+ /// @debug k-meta-call( k-meta-get-function( "k-string-replace" ), "foo bar", "bar", "baz" ); // => "foo baz"
811
1283
  @function k-meta-call( $function, $args... ) {
812
1284
  @return call( $function, $args... );
813
1285
  }
814
1286
 
1287
+ /// A wrapper around the `function-exists()` function.
1288
+ /// Returns whether a function with the name `$name` exists.
1289
+ /// @param {String} $name - The name of the function to check.
1290
+ /// @return {Boolean} - Whether a function with the name `$name` exists.
1291
+ ///
1292
+ /// @example scss - Usage
1293
+ /// @debug k-meta-function-exists( "k-string-replace" ); // => true
815
1294
  @function k-meta-function-exists( $name ) {
816
1295
  @return function-exists( $name );
817
1296
  }
818
1297
 
1298
+ /// A wrapper around the `get-function()` function.
1299
+ /// Returns the function with the name `$name`.
1300
+ /// @param {String} $name - The name of the function to get.
1301
+ /// @param {Boolean} $css - Whether to return the CSS representation of the function.
1302
+ /// @param {Module} $module - The module to get the function from.
1303
+ /// @return {Function} - The function with the name `$name`.
1304
+ ///
1305
+ /// @example scss - Usage
1306
+ /// @debug k-meta-get-function( "k-string-replace" ); // => Function
819
1307
  @function k-meta-get-function( $name, $args... ) {
820
1308
  @return get-function( $name, $args... );
821
1309
  }
822
1310
 
1311
+ /// A wrapper around the `inspect()` function.
1312
+ /// Returns a string representation of `$value`.
1313
+ /// @param {Any} $value - The value to inspect.
1314
+ /// @return {String} - A string representation of `$value`.
1315
+ ///
1316
+ /// @example scss - Usage
1317
+ /// @debug k-meta-inspect( "foo bar" ); // => "foo bar"
823
1318
  @function k-meta-inspect( $value ) {
824
1319
  @return inspect( $value );
825
1320
  }
826
1321
 
1322
+ /// A wrapper around the `keywords()` function.
1323
+ /// Returns a map of the keywords in `$args`.
1324
+ /// @param {List} $args - The arguments to process.
1325
+ /// @return {Map} - A map of the keywords in `$args`.
1326
+ ///
1327
+ /// @example scss - Usage
1328
+ /// @debug k-meta-keywords( ( "foo" "bar" "baz" "qux" ) ); // => ( "foo": "bar", "baz": "qux" )
827
1329
  @function k-meta-keywords( $args ) {
828
1330
  @return keywords( $args );
829
1331
  }
830
1332
 
1333
+ /// A wrapper around the `type-of()` function.
1334
+ /// Returns the type of `$value`.
1335
+ /// @param {Any} $value - The value to get the type of.
1336
+ /// @return {String} - The type of `$value`.
1337
+ ///
1338
+ /// @example scss - Usage
1339
+ /// @debug k-meta-type-of( "foo bar" ); // => "string"
831
1340
  @function k-meta-type-of( $value ) {
832
1341
  @return type-of( $value );
833
1342
  }
834
1343
 
1344
+ /// A wrapper around the `variable-exists()` function.
1345
+ /// Returns whether a variable with the name `$name` exists.
1346
+ /// @param {String} $name - The name of the variable to check.
1347
+ /// @return {Boolean} - Whether a variable with the name `$name` exists.
1348
+ ///
1349
+ /// @example scss - Usage
1350
+ /// @debug k-meta-variable-exists( "foo" ); // => true
835
1351
  @function k-meta-variable-exists( $name ) {
836
1352
  @return variable-exists( $name );
837
1353
  }
838
1354
 
1355
+ /// Checks whether `$value` is a <number> CSS data type.
1356
+ /// @param {Any} $value - The value to check.
1357
+ /// @return {Boolean} - Whether `$value` is a number.
1358
+ ///
1359
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/number
1360
+ ///
1361
+ /// @example scss - Usage
1362
+ /// @debug k-meta-is-number( 1 ); // => true
1363
+ /// @debug k-meta-is-number( "foo" ); // => false
839
1364
  @function k-meta-is-number( $value ) {
840
1365
  @return k-meta-type-of( $value ) == "number";
841
1366
  }
842
1367
 
1368
+ /// Checks whether `$value` is a <integer> CSS data type.
1369
+ /// @param {Any} $value - The value to check.
1370
+ /// @return {Boolean} - Whether `$value` is a integer.
1371
+ ///
1372
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/integer
1373
+ ///
1374
+ /// @example scss - Usage
1375
+ /// @debug k-meta-is-integer( 1 ); // => true
1376
+ /// @debug k-meta-is-integer( 1.5 ); // => false
843
1377
  @function k-meta-is-integer( $value ) {
844
1378
  @return k-meta-is-number( $value ) and k-math-round( $value ) == $value;
845
1379
  }
846
1380
 
1381
+ /// Checks whether `$value` is a <time> CSS data type.
1382
+ /// @param {Any} $value - The value to check.
1383
+ /// @return {Boolean} - Whether `$value` is a time.
1384
+ ///
1385
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/time
1386
+ ///
1387
+ /// @example scss - Usage
1388
+ /// @debug k-meta-is-time( 1s ); // => true
1389
+ /// @debug k-meta-is-time( 1 ); // => false
847
1390
  @function k-meta-is-time( $value ) {
848
1391
  @return k-meta-is-number( $value ) and k-string-index( "ms" "s", k-math-unit( $value ) ) != null;
849
1392
  }
850
1393
 
1394
+ /// Checks whether `$value` is a valid duration period.
1395
+ /// @param {Any} $value - The value to check.
1396
+ /// @return {Boolean} - Whether `$value` is a duration.
1397
+ ///
1398
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/time
1399
+ ///
1400
+ /// @example scss - Usage
1401
+ /// @debug k-meta-is-duration( 1s ); // => true
1402
+ /// @debug k-meta-is-duration( 1 ); // => false
851
1403
  @function k-meta-is-duration( $value ) {
852
1404
  @return k-meta-is-time( $value );
853
1405
  }
854
1406
 
1407
+ /// Checks whether `$value` is a <angle> CSS data type.
1408
+ /// @param {Any} $value - The value to check.
1409
+ /// @return {Boolean} - Whether `$value` is a angle.
1410
+ ///
1411
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/angle
1412
+ ///
1413
+ /// @example scss - Usage
1414
+ /// @debug k-meta-is-angle( 1deg ); // => true
1415
+ /// @debug k-meta-is-angle( 1 ); // => false
855
1416
  @function k-meta-is-angle( $value ) {
856
1417
  @return k-meta-is-number( $value ) and k-string-index( "deg" "rad" "grad" "turn", k-math-unit( $value ) ) != null;
857
1418
  }
858
1419
 
1420
+ /// Checks whether `$value` is a <frequency> CSS data type.
1421
+ /// @param {Any} $value - The value to check.
1422
+ /// @return {Boolean} - Whether `$value` is a frequency.
1423
+ ///
1424
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/frequency
1425
+ ///
1426
+ /// @example scss - Usage
1427
+ /// @debug k-meta-is-frequency( 1Hz ); // => true
1428
+ /// @debug k-meta-is-frequency( 1 ); // => false
859
1429
  @function k-meta-is-frequency( $value ) {
860
1430
  @return k-meta-is-number( $value ) and k-string-index( "Hz" "kHz", k-math-unit( $value ) ) != null;
861
1431
  }
862
1432
 
1433
+ /// Checks whether `$value` is a relative <length> CSS data type.
1434
+ /// @param {Any} $value - The value to check.
1435
+ /// @return {Boolean} - Whether `$value` is a relative length.
1436
+ ///
1437
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/length#relative_length_units_based_on_font
1438
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/length#relative_length_units_based_on_viewport
1439
+ ///
1440
+ /// @example scss - Usage
1441
+ /// @debug k-meta-is-relative-length( 1em ); // => true
1442
+ /// @debug k-meta-is-relative-length( 1ch ); // => true
1443
+ /// @debug k-meta-is-relative-length( 1 ); // => false
863
1444
  @function k-meta-is-relative-length( $value ) {
864
1445
  @return k-meta-is-number( $value ) and k-string-index( "em" "ex" "ch" "rem" "vw" "vh" "vmin" "vmax", k-math-unit( $value ) ) != null;
865
1446
  }
866
1447
 
1448
+ /// Checks whether `$value` is an absolute <length> CSS data type.
1449
+ /// @param {Any} $value - The value to check.
1450
+ /// @return {Boolean} - Whether `$value` is an absolute length.
1451
+ ///
1452
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/length#absolute_length_units
1453
+ ///
1454
+ /// @example scss - Usage
1455
+ /// @debug k-meta-is-absolute-length( 1cm ); // => true
1456
+ /// @debug k-meta-is-absolute-length( 1 ); // => false
867
1457
  @function k-meta-is-absolute-length( $value ) {
868
1458
  @return k-meta-is-number( $value ) and k-string-index( "cm" "mm" "in" "px" "pt" "pc", k-math-unit( $value ) ) != null;
869
1459
  }
870
1460
 
1461
+ /// Checks whether `$value` is a <percentage> CSS data type.
1462
+ /// @param {Any} $value - The value to check.
1463
+ /// @return {Boolean} - Whether `$value` is a percentage.
1464
+ ///
1465
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/percentage
1466
+ ///
1467
+ /// @example scss - Usage
1468
+ /// @debug k-meta-is-percentage( 1% ); // => true
1469
+ /// @debug k-meta-is-percentage( 1 ); // => false
871
1470
  @function k-meta-is-percentage( $value ) {
872
1471
  @return k-meta-is-number( $value ) and k-math-unit( $value ) == "%";
873
1472
  }
874
1473
 
1474
+ /// Checks whether `$value` is a <length> CSS data type.
1475
+ /// @param {Any} $value - The value to check.
1476
+ /// @return {Boolean} - Whether `$value` is a length.
1477
+ ///
1478
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/length
1479
+ ///
1480
+ /// @example scss - Usage
1481
+ /// @debug k-meta-is-length( 1em ); // => true
1482
+ /// @debug k-meta-is-length( 1cm ); // => true
1483
+ /// @debug k-meta-is-length( 1 ); // => false
875
1484
  @function k-meta-is-length( $value ) {
876
1485
  @return k-meta-is-relative-length( $value ) or k-meta-is-absolute-length( $value );
877
1486
  }
878
1487
 
1488
+ /// Checks whether `$value` is a <resolution> CSS data type.
1489
+ /// @param {Any} $value - The value to check.
1490
+ /// @return {Boolean} - Whether `$value` is a resolution.
1491
+ ///
1492
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/resolution
1493
+ ///
1494
+ /// @example scss - Usage
1495
+ /// @debug k-meta-is-resolution( 1dpi ); // => true
1496
+ /// @debug k-meta-is-resolution( 1 ); // => false
879
1497
  @function k-meta-is-resolution( $value ) {
880
1498
  @return k-meta-is-number( $value ) and k-string-index( "dpi" "dpcm" "dppx", k-math-unit( $value ) ) != null;
881
1499
  }
882
1500
 
1501
+ /// Checks whether `$value` is a <position> CSS data type.
1502
+ /// @param {Any} $value - The value to check.
1503
+ /// @return {Boolean} - Whether `$value` is a position.
1504
+ ///
1505
+ /// @link https://developer.mozilla.org/en-US/docs/Web/CSS/position
1506
+ ///
1507
+ /// @example scss - Usage
1508
+ /// @debug k-meta-is-position( center ); // => true
883
1509
  @function k-meta-is-position( $value ) {
884
1510
  @return k-meta-is-length( $value ) or k-meta-is-percentage( $value ) or k-string-index( "top" "right" "bottom" "left" "center", $value ) != null;
885
1511
  }
886
1512
 
887
1513
  // #endregion
888
1514
  // #region @import "./_string.import.scss"; -> packages/utils/node_modules/@progress/kendo-theme-core/scss/functions/_string.import.scss
1515
+ /// Returns the first index of `$substring` in `$string`, or `null` if `$string` doesn’t contain `$substring`.
1516
+ /// @param {String} $string - The string to process.
1517
+ /// @param {String} $substring - The substring to look for.
1518
+ /// @return {Number} - The first index of `$substring` in `$string`, or `null` if `$string` doesn’t contain `$substring`.
1519
+ ///
1520
+ /// @example scss - Usage
1521
+ /// @debug k-string-index( "foo bar", "bar" ); // => 5
889
1522
  @function k-string-index( $string, $substring ) {
890
1523
  @return str-index( $string, $substring );
891
1524
  }
892
1525
 
1526
+ /// Returns a copy of `$string` with `$insert` inserted at `$index`.
1527
+ /// @param {String} $string - The string to process.
1528
+ /// @param {String} $insert - The string to insert.
1529
+ /// @param {Number} $index - The index at which to insert `$insert`.
1530
+ /// @return {String} - The resulting string.
1531
+ ///
1532
+ /// @example scss - Usage
1533
+ /// @debug k-string-insert( "foo bar", "baz", 5 ); // => "foo baz bar"
893
1534
  @function k-string-insert( $string, $insert, $index ) {
894
1535
  @return str-insert( $string, $insert, $index );
895
1536
  }
896
1537
 
1538
+ /// Returns the length of `$string`.
1539
+ /// @param {String} $string - The string to process.
1540
+ /// @return {Number} - The length of `$string`.
1541
+ ///
1542
+ /// @example scss - Usage
1543
+ /// @debug k-string-length( "foo bar" ); // => 7
897
1544
  @function k-string-length( $string ) {
898
1545
  @return str-length( $string );
899
1546
  }
900
1547
 
1548
+ /// Returns a copy of `$string` with quotes added.
1549
+ /// @param {String} $string - The string to process.
1550
+ /// @return {String} - The resulting string.
1551
+ ///
1552
+ /// @example scss - Usage
1553
+ /// @debug k-string-quote( "foo bar" ); // => "foo bar"
901
1554
  @function k-string-quote( $string ) {
902
1555
  @return quote( $string );
903
1556
  }
904
1557
 
905
- // See https://www.sassmeister.com/gist/1b4f2da5527830088e4d
1558
+ /// Returns a copy of `$string` with all occurrences of `$search`
1559
+ /// replaced by `$replace`.
1560
+ /// @param {String} $string - The string to process.
1561
+ /// @param {String} $search - The substring to look for.
1562
+ /// @param {String} $replace - The replacement string.
1563
+ /// @return {String} - The resulting string.
1564
+ ///
1565
+ /// @link https://www.sassmeister.com/gist/1b4f2da5527830088e4d
1566
+ ///
1567
+ /// @example scss - Usage
1568
+ /// @debug k-string-replace( "foo bar", "bar", "baz" ); // => "foo baz"
906
1569
  @function k-string-replace( $string, $search, $replace: "" ) {
907
1570
  @if k-meta-type-of( $string ) == number {
908
1571
  $string: $string + "";
@@ -917,22 +1580,53 @@ $_kendo-escape-class-name: (
917
1580
  @return $string;
918
1581
  }
919
1582
 
1583
+ /// Returns a substring of `$string` starting at `$start-at` and ending at `$end-at`.
1584
+ /// @param {String} $string - The string to process.
1585
+ /// @param {Number} $start-at - The index at which to start the substring.
1586
+ /// @param {Number} $end-at - The index at which to end the substring.
1587
+ /// @return {String} - The resulting string.
1588
+ ///
1589
+ /// @example scss - Usage
1590
+ /// @debug k-string-slice( "foo bar", 5 ); // => "bar"
920
1591
  @function k-string-slice( $string, $start-at, $end-at: -1 ) {
921
1592
  @return str-slice( $string, $start-at, $end-at );
922
1593
  }
923
1594
 
1595
+ /// Returns a copy of `$string` with all uppercase letters converted to lowercase.
1596
+ /// @param {String} $string - The string to process.
1597
+ /// @return {String} - The resulting string.
1598
+ ///
1599
+ /// @example scss - Usage
1600
+ /// @debug k-string-to-lower-case( "FOO BAR" ); // => "foo bar"
924
1601
  @function k-string-to-lower-case( $string ) {
925
1602
  @return to-lower-case( $string );
926
1603
  }
927
1604
 
1605
+ /// Returns a copy of `$string` with all lowercase letters converted to uppercase.
1606
+ /// @param {String} $string - The string to process.
1607
+ /// @return {String} - The resulting string.
1608
+ ///
1609
+ /// @example scss - Usage
1610
+ /// @debug k-string-to-upper-case( "foo bar" ); // => "FOO BAR"
928
1611
  @function k-string-to-upper-case( $string ) {
929
1612
  @return to-upper-case( $string );
930
1613
  }
931
1614
 
1615
+ /// Returns a unique identifier.
1616
+ /// @return {String} - The unique identifier.
1617
+ ///
1618
+ /// @example scss - Usage
1619
+ /// @debug k-string-unique-id(); // => UNIQUE_ID
932
1620
  @function k-string-unique-id() {
933
1621
  @return unique-id();
934
1622
  }
935
1623
 
1624
+ /// Returns a copy of `$string` with quotes removed.
1625
+ /// @param {String} $string - The string to process.
1626
+ /// @return {String} - The resulting string.
1627
+ ///
1628
+ /// @example scss - Usage
1629
+ /// @debug k-string-unquote( "foo bar" ); // => foo bar
936
1630
  @function k-string-unquote( $string ) {
937
1631
  @return unquote( $string );
938
1632
  }
@@ -2670,11 +3364,6 @@ $kendo-utils: (
2670
3364
  /// @group order
2671
3365
  /// @contextType css
2672
3366
 
2673
- /// This is equivalent to `order: 1;`, `order: 2;`, `order: 12;`, etc.
2674
- /// @name .from k-order-1 to k-order-12
2675
- /// @group order
2676
- /// @contextType css
2677
-
2678
3367
  @mixin kendo-utils--flex-grid--order() {
2679
3368
 
2680
3369
  // Order utility classes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-theme-utils",
3
3
  "description": "Utility first library alongside Kendo UI",
4
- "version": "6.1.1-dev.1",
4
+ "version": "6.1.1-dev.11+a056ff586",
5
5
  "author": "Progress",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
@@ -41,7 +41,7 @@
41
41
  "postpublish": "echo 'no postpublish for utils'"
42
42
  },
43
43
  "dependencies": {
44
- "@progress/kendo-theme-core": "^6.1.1-dev.1"
44
+ "@progress/kendo-theme-core": "^6.1.1-dev.11+a056ff586"
45
45
  },
46
- "gitHead": "935391cd75bb0df74f506bbe4ce2bbfcd3412203"
46
+ "gitHead": "a056ff5860c51449a5ce6f770399c0f1fce97e1f"
47
47
  }
@@ -13,11 +13,6 @@
13
13
  /// @group order
14
14
  /// @contextType css
15
15
 
16
- /// This is equivalent to `order: 1;`, `order: 2;`, `order: 12;`, etc.
17
- /// @name .from k-order-1 to k-order-12
18
- /// @group order
19
- /// @contextType css
20
-
21
16
  @mixin kendo-utils--flex-grid--order() {
22
17
 
23
18
  // Order utility classes