igniteui-angular 20.0.7 → 20.0.9

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.
Files changed (102) hide show
  1. package/fesm2022/igniteui-angular.mjs +143 -52
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/index.d.ts +41 -5
  4. package/lib/core/styles/base/_index.scss +1 -0
  5. package/lib/core/styles/components/_index.scss +1 -0
  6. package/lib/core/styles/components/avatar/_avatar-theme.scss +0 -58
  7. package/lib/core/styles/components/badge/_badge-theme.scss +0 -72
  8. package/lib/core/styles/components/banner/_banner-theme.scss +0 -62
  9. package/lib/core/styles/components/bottom-nav/_bottom-nav-theme.scss +0 -100
  10. package/lib/core/styles/components/button/_button-theme.scss +0 -234
  11. package/lib/core/styles/components/button-group/_button-group-theme.scss +0 -293
  12. package/lib/core/styles/components/calendar/_calendar-theme.scss +0 -1075
  13. package/lib/core/styles/components/card/_card-theme.scss +0 -92
  14. package/lib/core/styles/components/carousel/_carousel-theme.scss +0 -218
  15. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +0 -150
  16. package/lib/core/styles/components/chip/_chip-theme.scss +1 -265
  17. package/lib/core/styles/components/column-actions/_column-actions-theme.scss +0 -48
  18. package/lib/core/styles/components/combo/_combo-theme.scss +9 -125
  19. package/lib/core/styles/components/date-picker/_date-picker-theme.scss +4 -0
  20. package/lib/core/styles/components/date-range-picker/_date-range-picker-theme.scss +0 -30
  21. package/lib/core/styles/components/dialog/_dialog-theme.scss +0 -75
  22. package/lib/core/styles/components/divider/_divider-theme.scss +0 -39
  23. package/lib/core/styles/components/dock-manager/_dock-manager-theme.scss +0 -68
  24. package/lib/core/styles/components/drop-down/_drop-down-theme.scss +0 -211
  25. package/lib/core/styles/components/expansion-panel/_expansion-panel-theme.scss +0 -96
  26. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +0 -1
  27. package/lib/core/styles/components/grid/_grid-theme.scss +44 -600
  28. package/lib/core/styles/components/grid-summary/_grid-summary-theme.scss +0 -84
  29. package/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +0 -92
  30. package/lib/core/styles/components/highlight/highlight-theme.scss +0 -55
  31. package/lib/core/styles/components/icon/_icon-theme.scss +0 -43
  32. package/lib/core/styles/components/icon-button/_icon-button-theme.scss +0 -112
  33. package/lib/core/styles/components/input/_file-input-component.scss +72 -0
  34. package/lib/core/styles/components/input/_file-input-theme.scss +203 -0
  35. package/lib/core/styles/components/input/_input-group-component.scss +110 -126
  36. package/lib/core/styles/components/input/_input-group-theme.scss +409 -648
  37. package/lib/core/styles/components/label/_label-theme.scss +2 -35
  38. package/lib/core/styles/components/list/_list-theme.scss +0 -264
  39. package/lib/core/styles/components/navbar/_navbar-theme.scss +0 -89
  40. package/lib/core/styles/components/navdrawer/_navdrawer-theme.scss +0 -141
  41. package/lib/core/styles/components/overlay/_overlay-theme.scss +0 -38
  42. package/lib/core/styles/components/paginator/_paginator-theme.scss +0 -50
  43. package/lib/core/styles/components/progress/circular/_circular-theme.scss +0 -73
  44. package/lib/core/styles/components/progress/linear/_linear-theme.scss +0 -68
  45. package/lib/core/styles/components/query-builder/_query-builder-theme.scss +0 -101
  46. package/lib/core/styles/components/radio/_radio-theme.scss +0 -136
  47. package/lib/core/styles/components/rating/_rating-theme.scss +0 -43
  48. package/lib/core/styles/components/ripple/_ripple-theme.scss +0 -39
  49. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +0 -82
  50. package/lib/core/styles/components/select/_select-theme.scss +0 -93
  51. package/lib/core/styles/components/slider/_slider-theme.scss +0 -187
  52. package/lib/core/styles/components/snackbar/_snackbar-theme.scss +0 -64
  53. package/lib/core/styles/components/splitter/_splitter-theme.scss +0 -71
  54. package/lib/core/styles/components/stepper/_stepper-theme.scss +0 -492
  55. package/lib/core/styles/components/switch/_switch-theme.scss +0 -264
  56. package/lib/core/styles/components/tabs/_tabs-theme.scss +2 -261
  57. package/lib/core/styles/components/time-picker/_time-picker-theme.scss +0 -156
  58. package/lib/core/styles/components/toast/_toast-theme.scss +0 -69
  59. package/lib/core/styles/components/tooltip/_tooltip-theme.scss +0 -62
  60. package/lib/core/styles/components/tree/_tree-theme.scss +0 -128
  61. package/lib/core/styles/components/watermark/_watermark-theme.scss +0 -60
  62. package/lib/core/styles/themes/_core.scss +2 -0
  63. package/lib/core/styles/themes/_index.scss +1 -0
  64. package/lib/core/styles/themes/generators/_base.scss +11 -0
  65. package/lib/core/styles/typography/_bootstrap.scss +4 -0
  66. package/lib/core/styles/typography/_fluent.scss +5 -0
  67. package/lib/core/styles/typography/_indigo.scss +6 -0
  68. package/lib/core/styles/typography/_material.scss +2 -0
  69. package/package.json +2 -2
  70. package/styles/igniteui-angular-dark.css +1 -1
  71. package/styles/igniteui-angular.css +1 -1
  72. package/styles/igniteui-bootstrap-dark.css +1 -1
  73. package/styles/igniteui-bootstrap-light.css +1 -1
  74. package/styles/igniteui-dark-green.css +1 -1
  75. package/styles/igniteui-fluent-dark-excel.css +1 -1
  76. package/styles/igniteui-fluent-dark-word.css +1 -1
  77. package/styles/igniteui-fluent-dark.css +1 -1
  78. package/styles/igniteui-fluent-light-excel.css +1 -1
  79. package/styles/igniteui-fluent-light-word.css +1 -1
  80. package/styles/igniteui-fluent-light.css +1 -1
  81. package/styles/igniteui-indigo-dark.css +1 -1
  82. package/styles/igniteui-indigo-light.css +1 -1
  83. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  84. package/styles/maps/igniteui-angular.css.map +1 -1
  85. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  86. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  87. package/styles/maps/igniteui-dark-green.css.map +1 -1
  88. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  89. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  90. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  91. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  92. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  93. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  94. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  95. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  96. package/lib/core/styles/components/button/_contained-button-theme.scss +0 -302
  97. package/lib/core/styles/components/button/_fab-button-theme.scss +0 -296
  98. package/lib/core/styles/components/button/_flat-button-theme.scss +0 -356
  99. package/lib/core/styles/components/button/_outlined-button-theme.scss +0 -419
  100. package/lib/core/styles/components/icon-button/_contained-icon-button-theme.scss +0 -196
  101. package/lib/core/styles/components/icon-button/_flat-icon-button-theme.scss +0 -188
  102. package/lib/core/styles/components/icon-button/_outlined-icon-button-theme.scss +0 -232
@@ -1,89 +1,5 @@
1
1
  @use 'sass:map';
2
- @use 'sass:meta';
3
2
  @use '../../base' as *;
4
- @use '../../themes/schemas' as *;
5
-
6
- ////
7
- /// @group themes
8
- /// @access public
9
- /// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
10
- /// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
11
- ////
12
-
13
- /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
14
- /// @param {Color} $background-color [null] - The summaries background color is inherited form igx-grid__tfoot
15
- /// @param {Color} $label-color [null] - The summaries label color.
16
- /// @param {Color} $result-color [null] - The summaries value/result color.
17
- /// @param {Color} $border-color [null] - The summaries border color.
18
- /// @param {Color} $pinned-border-width [null] - The border width of the summary panel.
19
- /// @param {Color} $pinned-border-style [null] - The border style of the summary panel.
20
- /// @param {Color} $pinned-border-color [null] - The border color of the summary panel.
21
- /// @param {Color} $label-hover-color [null] - The summaries hover label color.
22
- /// @requires $light-material-schema
23
- /// @example scss Change the summaries background and labels color
24
- /// $my-summary-theme: grid-summary-theme(
25
- /// $background-color: black,
26
- /// $label-color: white
27
- /// );
28
- /// // Pass the theme to the css-vars mixin
29
- /// @include css-vars($my-summary-theme);
30
- @function grid-summary-theme(
31
- $schema: $light-material-schema,
32
-
33
- $background-color: null,
34
- $label-color: null,
35
- $result-color: null,
36
- $border-color: null,
37
- $pinned-border-width: null,
38
- $pinned-border-style: null,
39
- $pinned-border-color: null,
40
- $label-hover-color: null
41
- ) {
42
- $name: 'igx-grid-summary';
43
- $selector: '.igx-grid-summary';
44
- $grid-summary-schema: ();
45
-
46
- @if map.has-key($schema, 'grid-summary') {
47
- $grid-summary-schema: map.get($schema, 'grid-summary');
48
- } @else {
49
- $grid-summary-schema: $schema;
50
- }
51
-
52
- $theme: digest-schema($grid-summary-schema);
53
-
54
- @if not($label-color) and $background-color {
55
- $label-color: adaptive-contrast(var(--background-color));
56
- }
57
-
58
- @if not($label-hover-color) and $label-color {
59
- $label-hover-color: var(--label-color);
60
- }
61
-
62
- @if not($result-color) and $background-color {
63
- $result-color: adaptive-contrast(var(--background-color));
64
- }
65
-
66
- @if not($border-color) and $background-color {
67
- $border-color: hsla(from adaptive-contrast(var(--background-color)) h s l / .26);
68
- }
69
-
70
- @if not($pinned-border-color) and $background-color {
71
- $pinned-border-color: hsla(from adaptive-contrast(var(--background-color)) h s l / .26);
72
- }
73
-
74
- @return extend($theme, (
75
- name: $name,
76
- selector: $selector,
77
- background-color: $background-color,
78
- label-color: $label-color,
79
- result-color: $result-color,
80
- border-color: $border-color,
81
- pinned-border-width: $pinned-border-width,
82
- pinned-border-style: $pinned-border-style,
83
- pinned-border-color: $pinned-border-color,
84
- label-hover-color: $label-hover-color,
85
- ));
86
- }
87
3
 
88
4
  /// @deprecated Use the `css-vars` mixin instead.
89
5
  /// @see {mixin} css-vars
@@ -1,97 +1,5 @@
1
1
  @use 'sass:map';
2
2
  @use '../../base' as *;
3
- @use '../../themes/schemas' as *;
4
-
5
- ////
6
- /// @group themes
7
- /// @access public
8
- /// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
9
- /// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
10
- ////
11
-
12
- /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
13
- /// @param {Color} $background-color [null] - The toolbar background color.
14
- /// @param {Color} $title-text-color [null] - The toolbar title text color.
15
- /// @param {Color} $dropdown-background [null] - The toolbar drop-down background color.
16
- /// @param {Color} $item-text-color [null] - The toolbar drop-down item text color.
17
- /// @param {Color} $item-hover-background [null] - The toolbar drop-down item hover background color.
18
- /// @param {Color} $item-hover-text-color [null] - The toolbar drop-down item hover text color.
19
- /// @param {Color} $item-focus-background [null] - The toolbar drop-down item focus background color.
20
- /// @param {Color} $item-focus-text-color [null] - The toolbar drop-down item focus text color.
21
- /// @param {Color} $border-color [null] - The toolbar border-bottom color.
22
- /// @requires $light-material-schema
23
- /// @example scss Change the toolbar background color
24
- /// $my-toolbar-theme: grid-toolbar-theme(
25
- /// $background-color: black
26
- /// );
27
- /// // Pass the theme to the css-vars mixin
28
- /// @include css-vars($my-toolbar-theme);
29
- @function grid-toolbar-theme(
30
- $schema: $light-material-schema,
31
-
32
- $background-color: null,
33
- $title-text-color: null,
34
-
35
- $dropdown-background: null,
36
- $item-text-color: null,
37
- $item-hover-background: null,
38
- $item-hover-text-color: null,
39
- $item-focus-background: null,
40
- $item-focus-text-color: null,
41
- $size: null,
42
- $border-color: null,
43
- ) {
44
- $name: 'igx-grid-toolbar';
45
- $selector: 'igx-grid-toolbar, .igx-grid-toolbar__dd-list';
46
- $grid-toolbar-schema: ();
47
-
48
- @if map.has-key($schema, 'grid-toolbar') {
49
- $grid-toolbar-schema: map.get($schema, 'grid-toolbar');
50
- } @else {
51
- $grid-toolbar-schema: $schema;
52
- }
53
-
54
- $theme: digest-schema($grid-toolbar-schema);
55
-
56
- @if not($title-text-color) and $background-color {
57
- $title-text-color: adaptive-contrast(var(--background-color));
58
- }
59
-
60
- @if not($item-text-color) and $dropdown-background {
61
- $item-text-color: adaptive-contrast(var(--dropdown-background));
62
- }
63
-
64
- @if not($item-hover-text-color) and $dropdown-background {
65
- $item-hover-text-color: adaptive-contrast(var(--dropdown-background));
66
- }
67
-
68
- @if not($item-focus-text-color) and $dropdown-background {
69
- $item-focus-text-color: adaptive-contrast(var(--dropdown-background));
70
- }
71
-
72
- @if not($item-hover-text-color) and $item-hover-background {
73
- $item-hover-text-color: adaptive-contrast(var(--item-hover-background));
74
- }
75
-
76
- @if not($item-focus-text-color) and $item-focus-background {
77
- $item-focus-text-color: adaptive-contrast(var(--item-focus-background));
78
- }
79
-
80
- @return extend($theme, (
81
- name: $name,
82
- selector: $selector,
83
- background-color: $background-color,
84
- title-text-color: $title-text-color,
85
- item-text-color: $item-text-color,
86
- dropdown-background: $dropdown-background,
87
- item-hover-background: $item-hover-background,
88
- item-hover-text-color: $item-hover-text-color,
89
- item-focus-background: $item-focus-background,
90
- item-focus-text-color: $item-focus-text-color,
91
- size: $size,
92
- border-color: $border-color
93
- ));
94
- }
95
3
 
96
4
  /// @deprecated Use the `css-vars` mixin instead.
97
5
  /// @see {mixin} css-vars
@@ -1,60 +1,5 @@
1
1
  @use 'sass:map';
2
2
  @use '../../base' as *;
3
- @use '../../themes/schemas' as *;
4
-
5
- ////
6
- /// @group themes
7
- /// @access public
8
- /// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
9
- ////
10
-
11
- /// If only background color(s) specified, text color(s) will be assigned automatically to a contrasting color.
12
- /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
13
- /// @param {Color} $resting-background [null]- The background color used for the highlight in its resting state.
14
- /// @param {Color} $resting-color [null] - The text color used for the highlight in its resting state.
15
- /// @param {Color} $active-background [null] - The background color used for the highlight in its active state.
16
- /// @param {Color} $active-color [null] - The text color used for the highlight in its active state.
17
- /// @requires $light-material-schema
18
- /// @example scss Change the background and icon colors in icon highlight
19
- /// $my-highlight-theme: highlight-theme($resting-background: black, $active-color: white);
20
- /// // Pass the theme to the css-vars() mixin
21
- /// @include css-vars($my-highlight-theme);
22
- @function highlight-theme(
23
- $schema: $light-material-schema,
24
- $resting-background: null,
25
- $resting-color: null,
26
- $active-background: null,
27
- $active-color: null,
28
- ) {
29
- $name: 'igx-highlight';
30
- $selector: '.igx-highlight';
31
- $highlight-schema: ();
32
-
33
- @if map.has-key($schema, 'highlight') {
34
- $highlight-schema: map.get($schema, 'highlight');
35
- } @else {
36
- $highlight-schema: $schema;
37
- }
38
-
39
- $theme: digest-schema($highlight-schema);
40
-
41
- @if not($resting-color) and $resting-background {
42
- $resting-color: adaptive-contrast(var(--resting-background));
43
- }
44
-
45
- @if not($active-color) and $active-background {
46
- $active-color: adaptive-contrast(var(--active-background));
47
- }
48
-
49
- @return extend($theme, (
50
- name: $name,
51
- selector: $selector,
52
- resting-background: $resting-background,
53
- resting-color: $resting-color,
54
- active-background: $active-background,
55
- active-color: $active-color,
56
- ));
57
- }
58
3
 
59
4
  /// @deprecated Use the `css-vars` mixin instead.
60
5
  /// @see {mixin} css-vars
@@ -1,48 +1,5 @@
1
1
  @use 'sass:map';
2
2
  @use '../../base' as *;
3
- @use '../../themes/schemas' as *;
4
-
5
- ////
6
- /// @group themes
7
- /// @access public
8
- /// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
9
- /// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
10
- ////
11
-
12
- /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
13
- /// @param {Color} $color [null] - The icon color.
14
- /// @param {String} $size [null] - The icon size.
15
- /// @param {Color} $disabled-color [null] - The disabled icon color.
16
- /// @requires $light-material-schema
17
- /// @example scss Change the icon color
18
- /// $my-icon-theme: icon-theme($color: orange);
19
- /// // Pass the theme to the css-vars() mixin
20
- /// @include css-vars($my-icon-theme);
21
- @function icon-theme(
22
- $schema: $light-material-schema,
23
-
24
- $color: null,
25
- $size: null,
26
- $disabled-color: null
27
- ) {
28
- $name: 'igx-icon';
29
- $icon-schema: ();
30
-
31
- @if map.has-key($schema, 'icon') {
32
- $icon-schema: map.get($schema, 'icon');
33
- } @else {
34
- $icon-schema: $schema;
35
- }
36
-
37
- $theme: digest-schema($icon-schema);
38
-
39
- @return extend($theme, (
40
- name: $name,
41
- color: $color,
42
- size: $size,
43
- disabled-color: $disabled-color,
44
- ));
45
- }
46
3
 
47
4
  // stylelint-disable font-family-no-missing-generic-family-keyword
48
5
  /// @deprecated Use the `css-vars` mixin instead.
@@ -1,119 +1,7 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:meta';
3
3
  @use 'sass:list';
4
- @use 'sass:color';
5
4
  @use '../../base' as *;
6
- @use '../../themes/schemas' as *;
7
-
8
- @forward './flat-icon-button-theme';
9
- @forward './contained-icon-button-theme';
10
- @forward './outlined-icon-button-theme';
11
-
12
- ////
13
- /// @group themes
14
- /// @access public
15
- /// @author <a href="https://github.com/SisIvanova" target="_blank">Silvia Ivanova</a>
16
- ////
17
-
18
- @function icon-button-theme(
19
- $schema: $light-material-schema,
20
-
21
- $background: null,
22
- $foreground: null,
23
- $shadow-color: null,
24
-
25
- $hover-background: null,
26
- $hover-foreground: null,
27
-
28
- $focus-background: null,
29
- $focus-foreground: null,
30
-
31
- $focus-hover-background: null,
32
- $focus-hover-foreground: null,
33
-
34
- $active-background: null,
35
- $active-foreground: null,
36
-
37
- $border-radius: null,
38
- $border-color: null,
39
- $focus-border-color: null,
40
-
41
- $disabled-background: null,
42
- $disabled-foreground: null,
43
- $disabled-border-color: null,
44
-
45
- $size: null,
46
- ) {
47
- $name: 'igx-icon-button';
48
- $icon-button-schema: ();
49
-
50
- @if map.has-key($schema, 'icon-button') {
51
- $icon-button-schema: map.get($schema, 'icon-button');
52
- } @else {
53
- $icon-button-schema: $schema;
54
- }
55
-
56
- $themes: ();
57
- $variant: null;
58
-
59
- @each $_name, $_schema in $icon-button-schema {
60
- @if not($variant) {
61
- $variant: map.get($schema, '_meta', 'theme');
62
- }
63
-
64
- @if not($foreground) and $background {
65
- $foreground: adaptive-contrast(var(--background));
66
- }
67
-
68
- @if not($hover-foreground) and $hover-background {
69
- $hover-foreground: adaptive-contrast(var(--hover-background));
70
- }
71
-
72
- @if not($focus-foreground) and $focus-background {
73
- $focus-foreground: adaptive-contrast(var(--focus-background));
74
- }
75
-
76
- @if not($focus-hover-foreground) and $focus-hover-background {
77
- $focus-hover-foreground: adaptive-contrast(var(--focus-hover-background));
78
- }
79
-
80
- $themes: map.merge($themes, (
81
- $_name: extend( digest-schema($_schema), (
82
- name: $name,
83
- background: $background,
84
- foreground: $foreground,
85
- shadow-color: $shadow-color,
86
-
87
- hover-background: $hover-background,
88
- hover-foreground: $hover-foreground,
89
-
90
- focus-background: $focus-background,
91
- focus-foreground: $focus-foreground,
92
-
93
- focus-hover-background: $focus-hover-background,
94
- focus-hover-foreground: $focus-hover-foreground,
95
-
96
- active-background: $active-background,
97
- active-foreground: $active-foreground,
98
-
99
- border-radius: $border-radius,
100
- border-color: $border-color,
101
- focus-border-color: $focus-border-color,
102
-
103
- disabled-background: $disabled-background,
104
- disabled-foreground: $disabled-foreground,
105
- disabled-border-color: $disabled-border-color,
106
- size: $size,
107
- ))
108
- ));
109
- }
110
-
111
- @return (
112
- name: $name,
113
- variant: $variant,
114
- themes: $themes,
115
- );
116
- }
117
5
 
118
6
  /// @deprecated Use the `css-vars` mixin instead.
119
7
  /// @see {mixin} css-vars
@@ -0,0 +1,72 @@
1
+ @use '../../base' as *;
2
+ @use 'sass:string';
3
+
4
+ /// @access private
5
+ @mixin component {
6
+ @include b(igx-file-input) {
7
+ $this: bem--selector-to-string(&);
8
+
9
+ @include register-component(
10
+ $name: string.slice($this, 2, -1),
11
+ $deps: (igx-input-group)
12
+ );
13
+
14
+ @include e(file-names) {
15
+ @extend %file-names !optional;
16
+ }
17
+
18
+ @include e(upload-button-wrapper) {
19
+ @extend %upload-button-wrapper !optional;
20
+ }
21
+
22
+ @include e(upload-button) {
23
+ @extend %upload-button !optional;
24
+ }
25
+
26
+ @include e(clear-icon) {
27
+ @extend %clear-icon !optional;
28
+ }
29
+
30
+ @include m(filled) {
31
+ @include e(file-names) {
32
+ @extend %file-names--filled !optional;
33
+ }
34
+
35
+ @include e(upload-button-wrapper) {
36
+ @extend %upload-button-wrapper--filled !optional;
37
+ }
38
+
39
+ @include e(upload-button) {
40
+ @extend %upload-button--filled !optional;
41
+ }
42
+ }
43
+
44
+ @include m(focused) {
45
+ @include e(file-names) {
46
+ @extend %file-names--focused !optional;
47
+ }
48
+
49
+ @include e(upload-button-wrapper) {
50
+ @extend %upload-button-wrapper--focused !optional;
51
+ }
52
+
53
+ @include e(upload-button) {
54
+ @extend %upload-button--focused !optional;
55
+ }
56
+ }
57
+
58
+ @include m(disabled) {
59
+ @include e(file-names) {
60
+ @extend %file-names--disabled !optional;
61
+ }
62
+
63
+ @include e(upload-button-wrapper) {
64
+ @extend %upload-button-wrapper--disabled !optional;
65
+ }
66
+
67
+ @include e(upload-button) {
68
+ @extend %upload-button--disabled !optional;
69
+ }
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,203 @@
1
+ @use 'sass:map';
2
+ @use 'sass:meta';
3
+ @use '../../base' as *;
4
+ @use '../../themes/schemas' as *;
5
+ @use 'igniteui-theming/sass/animations/easings' as *;
6
+
7
+ ////
8
+ /// @group themes
9
+ /// @access public
10
+ ////
11
+
12
+ /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
13
+ /// @param {Color} $file-names-background [null] - The file names container background color.
14
+ /// @param {Color} $file-names-background--focused [null] - The file names container background color when the file input is focused.
15
+ /// @param {Color} $file-names-background--filled [null] - The file names container background color when the file input is filled.
16
+ /// @param {Color} $file-names-background--disabled [null] - The file names container background color when the file input is disabled.
17
+ /// @param {Color} $file-names-foreground [null] - The file names color.
18
+ /// @param {Color} $file-names-foreground--focused [null] - The file names color when the file input is focused.
19
+ /// @param {Color} $file-names-foreground--filled [null] - The file names color when the file input is filled.
20
+ /// @param {Color} $file-names-foreground--disabled [null] - The file names color when the file input is disabled.
21
+ /// @param {Color} $file-selector-button-background [null] - The file input selector button background color.
22
+ /// @param {Color} $file-selector-button-background--focused [null] - The selector button background color when the file input is focused.
23
+ /// @param {Color} $file-selector-button-background--filled [null] - The selector button background color when the file input is filled.
24
+ /// @param {Color} $file-selector-button-background--disabled [null] - The selector button background color when the file input is disabled.
25
+ /// @param {Color} $file-selector-button-foreground [null] - The file input selector button foreground color.
26
+ /// @param {Color} $file-selector-button-foreground--focused [null] - The selector button foreground color when the file input is focused.
27
+ /// @param {Color} $file-selector-button-foreground--filled [null] - The selector button foreground color when the file input is filled.
28
+ /// @param {Color} $file-selector-button-foreground--disabled [null] - The selector button foreground color when the file input is disabled.
29
+ /// @example scss Change the focused border and label colors
30
+ /// $my-file-input-theme: file-input-theme($file-names-foreground: #09f);
31
+ /// // Pass the theme to the css-vars() mixin
32
+ /// @include css-vars($my-file-input-theme);
33
+ @function file-input-theme(
34
+ $schema: $light-material-schema,
35
+ $file-names-background: null,
36
+ $file-names-background--focused: null,
37
+ $file-names-background--filled: null,
38
+ $file-names-background--disabled: null,
39
+ $file-names-foreground: null,
40
+ $file-names-foreground--focused: null,
41
+ $file-names-foreground--filled: null,
42
+ $file-names-foreground--disabled: null,
43
+
44
+ $file-selector-button-background: null,
45
+ $file-selector-button-background--focused: null,
46
+ $file-selector-button-background--filled: null,
47
+ $file-selector-button-background--disabled: null,
48
+ $file-selector-button-foreground: null,
49
+ $file-selector-button-foreground--focused: null,
50
+ $file-selector-button-foreground--filled: null,
51
+ $file-selector-button-foreground--disabled: null,
52
+ ) {
53
+ $name: 'igx-file-input';
54
+
55
+ // the variable are scoped to the selector so no other input except the file type will have them.
56
+ $selector: '.igx-file-input';
57
+
58
+ $file-input-schema: ();
59
+ @if map.has-key($schema, 'file-input') {
60
+ $file-input-schema: map.get($schema, 'file-input');
61
+ } @else {
62
+ $file-input-schema: $schema;
63
+ }
64
+
65
+ $theme: digest-schema($file-input-schema);
66
+
67
+ @return extend(
68
+ $theme,
69
+ (
70
+ name: $name,
71
+ selector: $selector,
72
+ file-names-background: $file-names-background,
73
+ file-names-background--focused: $file-names-background--focused,
74
+ file-names-background--filled: $file-names-background--filled,
75
+ file-names-background--disabled: $file-names-background--disabled,
76
+ file-names-foreground: $file-names-foreground,
77
+ file-names-foreground--focused: $file-names-foreground--focused,
78
+ file-names-foreground--filled: $file-names-foreground--filled,
79
+ file-names-foreground--disabled: $file-names-foreground--disabled,
80
+
81
+ file-selector-button-background: $file-selector-button-background,
82
+ file-selector-button-background--focused: $file-selector-button-background--focused,
83
+ file-selector-button-background--filled: $file-selector-button-background--filled,
84
+ file-selector-button-background--disabled: $file-selector-button-background--disabled,
85
+ file-selector-button-foreground: $file-selector-button-foreground,
86
+ file-selector-button-foreground--focused: $file-selector-button-foreground--focused,
87
+ file-selector-button-foreground--filled: $file-selector-button-foreground--filled,
88
+ file-selector-button-foreground--disabled: $file-selector-button-foreground--disabled,
89
+ ),
90
+ );
91
+ }
92
+
93
+ /// @deprecated Use the `css-vars` mixin instead.
94
+ /// @see {mixin} css-vars
95
+ /// @param {Map} $theme - The theme used to style the component.
96
+ @mixin file-input($theme) {
97
+ @include css-vars($theme);
98
+ $variant: map.get($theme, '_meta', 'theme');
99
+
100
+ %file-names {
101
+ color: var-get($theme, 'file-names-foreground');
102
+ background-color: var-get($theme, 'file-names-background');
103
+ }
104
+
105
+ %file-names--filled {
106
+ color: var-get($theme, 'file-names-foreground--filled');
107
+ background-color: var-get($theme, 'file-names-background--filled');
108
+ }
109
+
110
+ %file-names--focused {
111
+ color: var-get($theme, 'file-names-foreground--focused');
112
+ background-color: var-get($theme, 'file-names-background--focused');
113
+ }
114
+
115
+ %file-names--disabled {
116
+ color: var-get($theme, 'file-names-foreground--disabled');
117
+ background-color: var-get($theme, 'file-names-background--disabled');
118
+ }
119
+
120
+ %upload-button-wrapper {
121
+ background: #{var-get($theme, 'file-selector-button-background')}
122
+ }
123
+
124
+ %upload-button {
125
+ border-inline: 0;
126
+
127
+ // That button can't have :focus, :active, :hover states, that's why we dont need to override them here.
128
+ --foreground: #{var-get($theme, 'file-selector-button-foreground')};
129
+ --background: transparent;
130
+ --resting-elevation: none;
131
+ --shadow-color: none;
132
+ --border-radius: 0;
133
+ }
134
+
135
+
136
+ %upload-button-wrapper--filled {
137
+ color: #{var-get($theme, 'file-selector-button-foreground--filled')};
138
+ background: #{var-get($theme, 'file-selector-button-background--filled')};
139
+ }
140
+
141
+ %upload-button--filled {
142
+ --foreground: #{var-get($theme, 'file-selector-button-foreground--filled')};
143
+ --background: transparent;
144
+ }
145
+
146
+ %upload-button-wrapper--focused {
147
+ color: #{var-get($theme, 'file-selector-button-foreground--focused')};
148
+ background: #{var-get($theme, 'file-selector-button-background--focused')};
149
+ }
150
+
151
+ %upload-button--focused {
152
+ --foreground: #{var-get($theme, 'file-selector-button-foreground--focused')};
153
+ --background: transparent;
154
+ }
155
+
156
+ %upload-button-wrapper--disabled {
157
+ color: #{var-get($theme, 'file-selector-button-foreground--disabled')};
158
+ background: #{var-get($theme, 'file-selector-button-background--disabled')};
159
+ }
160
+
161
+ %upload-button--disabled {
162
+ --disabled-foreground: #{var-get($theme, 'file-selector-button-foreground--disabled')};
163
+ --disabled-background: transparent;
164
+ }
165
+
166
+ %clear-icon {
167
+ &:focus {
168
+ @if $variant == 'indigo' or $variant == 'fluent' {
169
+ background-color: color($color: 'primary', $variant: 500);
170
+ color: contrast-color($color: 'primary', $variant: 600);
171
+ }
172
+
173
+ @if $variant == 'material' {
174
+ background-color: transparent;
175
+ color: color($color: 'secondary', $variant: 500);
176
+ }
177
+
178
+ @if $variant == 'bootstrap' {
179
+ color: contrast-color($color: 'primary', $variant: 600);
180
+ background-color: color($color: 'primary', $variant: 500);
181
+ }
182
+ }
183
+ }
184
+ }
185
+
186
+ /// Adds typography styles for the .igx-file-input.
187
+ /// Uses the 'subtitle-1', 'caption'
188
+ /// category from the typographic scale.
189
+ /// @group typography
190
+ /// @param {Map} $categories [(file-text: 'subtitle-1')] - The categories from the typographic scale used for type styles.
191
+ @mixin file-input-typography(
192
+ $categories: (
193
+ file-text: 'subtitle-1'
194
+ )
195
+ ) {
196
+ $file-text: map.get($categories, 'file-text');
197
+
198
+ %file-names {
199
+ @include type-style($file-text) {
200
+ margin: 0;
201
+ }
202
+ }
203
+ }