cx 26.3.3 → 26.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/build/charts/helpers/SnapPointFinder.d.ts +2 -2
  2. package/build/charts/helpers/SnapPointFinder.d.ts.map +1 -1
  3. package/build/charts/helpers/ValueAtFinder.d.ts +4 -4
  4. package/build/charts/helpers/ValueAtFinder.d.ts.map +1 -1
  5. package/build/charts/helpers/ValueAtFinder.js +5 -2
  6. package/build/data/createAccessorModelProxy.d.ts +11 -6
  7. package/build/data/createAccessorModelProxy.d.ts.map +1 -1
  8. package/build/data/createAccessorModelProxy.js +3 -1
  9. package/build/jsx-runtime.d.ts +1 -2
  10. package/build/jsx-runtime.d.ts.map +1 -1
  11. package/build/ui/createFunctionalComponent.d.ts +1 -4
  12. package/build/ui/createFunctionalComponent.d.ts.map +1 -1
  13. package/build/widgets/form/Calendar.d.ts +0 -1
  14. package/build/widgets/form/Calendar.d.ts.map +1 -1
  15. package/build/widgets/form/Calendar.js +22 -14
  16. package/build/widgets/form/TimeList.d.ts +1 -3
  17. package/build/widgets/form/TimeList.d.ts.map +1 -1
  18. package/build/widgets/index.d.ts +1 -3
  19. package/build/widgets/index.d.ts.map +1 -1
  20. package/build/widgets/index.js +1 -3
  21. package/build/widgets/overlay/Overlay.d.ts +1 -1
  22. package/build/widgets/overlay/Overlay.d.ts.map +1 -1
  23. package/build/widgets/overlay/Overlay.js +19 -10
  24. package/build/widgets/overlay/Window.d.ts.map +1 -1
  25. package/build/widgets/overlay/Window.js +11 -5
  26. package/dist/charts.css +256 -256
  27. package/dist/manifest.js +728 -737
  28. package/dist/widgets.css +6 -14
  29. package/dist/widgets.js +13 -26
  30. package/package.json +1 -1
  31. package/src/charts/BarGraph.scss +31 -31
  32. package/src/charts/Legend.scss +57 -57
  33. package/src/charts/LegendEntry.scss +35 -35
  34. package/src/charts/LineGraph.scss +28 -28
  35. package/src/charts/helpers/SnapPointFinder.ts +136 -136
  36. package/src/charts/helpers/ValueAtFinder.ts +72 -72
  37. package/src/charts/variables.scss +1 -2
  38. package/src/data/createAccessorModelProxy.ts +66 -66
  39. package/src/ui/DataProxy.ts +55 -55
  40. package/src/ui/Rescope.ts +50 -50
  41. package/src/ui/adapter/ArrayAdapter.ts +229 -229
  42. package/src/ui/exprHelpers.ts +96 -96
  43. package/src/util/scss/include.scss +40 -27
  44. package/src/widgets/Button.maps.scss +103 -103
  45. package/src/widgets/Sandbox.ts +104 -104
  46. package/src/widgets/drag-drop/variables.scss +1 -2
  47. package/src/widgets/form/Calendar.tsx +772 -772
  48. package/src/widgets/form/ColorField.scss +112 -117
  49. package/src/widgets/form/DateTimeField.scss +111 -125
  50. package/src/widgets/form/LookupField.scss +228 -251
  51. package/src/widgets/form/MonthField.scss +113 -122
  52. package/src/widgets/form/NumberField.scss +72 -80
  53. package/src/widgets/form/Select.scss +104 -117
  54. package/src/widgets/form/TextField.scss +66 -78
  55. package/src/widgets/form/variables.scss +110 -111
  56. package/src/widgets/grid/Grid.tsx +3885 -4428
  57. package/src/widgets/grid/variables.scss +47 -48
  58. package/src/widgets/index.ts +63 -63
  59. package/src/widgets/nav/Menu.variables.scss +1 -2
  60. package/src/widgets/nav/Tab.ts +6 -4
  61. package/src/widgets/nav/variables.scss +1 -2
  62. package/src/widgets/overlay/Overlay.tsx +1028 -1028
  63. package/src/widgets/overlay/Window.tsx +320 -320
  64. package/src/widgets/overlay/variables.scss +1 -2
  65. package/src/widgets/variables.scss +61 -62
@@ -1,122 +1,113 @@
1
- @use "sass:math";
2
- @use "sass:map";
3
- @use "../variables" as *;
4
- @use "../maps" as *;
5
- @use "../../util/scss/add-rules.scss" as *;
6
- @use "../../util/scss/calc.scss" as *;
7
- @use "../../util/scss/clockwise.scss" as *;
8
- @use "../../util/scss/deep-merge.scss" as *;
9
- @use "../../util/scss/besm.scss" as *;
10
- @use "../../util/scss/include.scss" as *;
11
- @use "./Field.scss" as *;
12
-
13
- @mixin cx-monthfield(
14
- $name: "monthfield",
15
- $state-style-map: $cx-std-field-state-style-map,
16
- $placeholder: $cx-input-placeholder,
17
- $empty-text: $cx-empty-text,
18
- $clear-state-style-map: $cx-clear-state-style-map,
19
- $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
20
- $right-icon-state-style-map: $cx-input-right-icon-state-style-map,
21
- $icon-size: $cx-default-input-icon-size,
22
- $width: $cx-default-input-width,
23
- $besm: $cx-besm
24
- ) {
25
- $block: map.get($besm, block);
26
- $element: map.get($besm, element);
27
- $state: map.get($besm, state);
28
-
29
- .#{$block}#{$name} {
30
- @include cxb-field($besm, $state-style-map, $width: $width);
31
- }
32
-
33
- $padding: cx-get-state-rule($state-style-map, default, "padding");
34
-
35
- .#{$element}#{$name}-input {
36
- @include cxe-field-input(
37
- $besm,
38
- $state-style-map,
39
- $placeholder: $placeholder,
40
- $overrides: (
41
- default: (
42
- padding: cx-top($padding)
43
- cx-calc(
44
- cx-right($padding),
45
- $cx-default-clear-size,
46
- $cx-default-clear-spacing
47
- )
48
- cx-bottom($padding)
49
- cx-calc(
50
- cx-left($padding),
51
- $cx-default-input-left-tool-size,
52
- $cx-default-input-left-tool-spacing
53
- ),
54
- )
55
- )
56
- );
57
- }
58
-
59
- .#{$element}#{$name}-clear {
60
- @include cxe-field-button($besm, $clear-state-style-map);
61
-
62
- .#{$state}focus > & {
63
- @include cx-add-state-rules($clear-state-style-map, focus);
64
- }
65
- .#{$state}error > & {
66
- @include cx-add-state-rules($clear-state-style-map, error);
67
- }
68
- }
69
-
70
- .#{$element}#{$name}-left-icon {
71
- @include cxe-field-button(
72
- $besm,
73
- cx-deep-map-merge(
74
- $left-icon-state-style-map,
75
- (
76
- default: (
77
- cursor: pointer,
78
- ),
79
- )
80
- )
81
- );
82
-
83
- .#{$state}disabled > & {
84
- @include cx-add-state-rules($state-style-map, disabled);
85
- border-width: 0;
86
- }
87
-
88
- .#{$state}focus > & {
89
- @include cx-add-state-rules($left-icon-state-style-map, focus);
90
- }
91
- .#{$state}error > & {
92
- @include cx-add-state-rules($left-icon-state-style-map, error);
93
- }
94
- }
95
-
96
- .#{$element}#{$name}-right-icon {
97
- @include cxe-field-button($besm, $right-icon-state-style-map);
98
-
99
- .#{$state}disabled > & {
100
- @include cx-add-state-rules($state-style-map, disabled);
101
- border-width: 0;
102
- }
103
- .#{$state}focus > & {
104
- @include cx-add-state-rules($right-icon-state-style-map, focus);
105
- }
106
- .#{$state}error > & {
107
- @include cx-add-state-rules($right-icon-state-style-map, error);
108
- }
109
- }
110
-
111
- .#{$element}#{$name}-icon {
112
- @include cxe-field-button-icon($besm, $icon-size);
113
- }
114
-
115
- .#{$element}#{$name}-empty-text {
116
- @include cxe-field-empty-text($empty-text);
117
- }
118
- }
119
-
120
- @if (cx-should-include("cx/widgets/MonthField")) {
121
- @include cx-monthfield();
122
- }
1
+ @use "sass:math";
2
+ @use "sass:map";
3
+ @use "../variables" as *;
4
+ @use "../maps" as *;
5
+ @use "../../util/scss/add-rules.scss" as *;
6
+ @use "../../util/scss/calc.scss" as *;
7
+ @use "../../util/scss/clockwise.scss" as *;
8
+ @use "../../util/scss/deep-merge.scss" as *;
9
+ @use "../../util/scss/besm.scss" as *;
10
+ @use "../../util/scss/include.scss" as *;
11
+ @use "./Field.scss" as *;
12
+
13
+ @mixin cx-monthfield(
14
+ $name: "monthfield",
15
+ $state-style-map: $cx-std-field-state-style-map,
16
+ $placeholder: $cx-input-placeholder,
17
+ $empty-text: $cx-empty-text,
18
+ $clear-state-style-map: $cx-clear-state-style-map,
19
+ $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
20
+ $right-icon-state-style-map: $cx-input-right-icon-state-style-map,
21
+ $icon-size: $cx-default-input-icon-size,
22
+ $width: $cx-default-input-width,
23
+ $besm: $cx-besm
24
+ ) {
25
+ $block: map.get($besm, block);
26
+ $element: map.get($besm, element);
27
+ $state: map.get($besm, state);
28
+
29
+ .#{$block}#{$name} {
30
+ @include cxb-field($besm, $state-style-map, $width: $width);
31
+ }
32
+
33
+ $padding: cx-get-state-rule($state-style-map, default, "padding");
34
+
35
+ .#{$element}#{$name}-input {
36
+ @include cxe-field-input(
37
+ $besm,
38
+ $state-style-map,
39
+ $placeholder: $placeholder,
40
+ $overrides: (
41
+ default: (
42
+ padding: cx-top($padding) cx-calc(cx-top($padding), $cx-default-clear-size, $cx-default-clear-spacing)
43
+ cx-bottom($padding)
44
+ cx-calc(cx-top($padding), $cx-default-input-left-tool-size, $cx-default-input-left-tool-spacing),
45
+ )
46
+ )
47
+ );
48
+ }
49
+
50
+ .#{$element}#{$name}-clear {
51
+ @include cxe-field-button($besm, $clear-state-style-map);
52
+
53
+ .#{$state}focus > & {
54
+ @include cx-add-state-rules($clear-state-style-map, focus);
55
+ }
56
+ .#{$state}error > & {
57
+ @include cx-add-state-rules($clear-state-style-map, error);
58
+ }
59
+ }
60
+
61
+ .#{$element}#{$name}-left-icon {
62
+ @include cxe-field-button(
63
+ $besm,
64
+ cx-deep-map-merge(
65
+ $left-icon-state-style-map,
66
+ (
67
+ default: (
68
+ cursor: pointer,
69
+ ),
70
+ )
71
+ )
72
+ );
73
+
74
+ .#{$state}disabled > & {
75
+ @include cx-add-state-rules($state-style-map, disabled);
76
+ border-width: 0;
77
+ }
78
+
79
+ .#{$state}focus > & {
80
+ @include cx-add-state-rules($left-icon-state-style-map, focus);
81
+ }
82
+ .#{$state}error > & {
83
+ @include cx-add-state-rules($left-icon-state-style-map, error);
84
+ }
85
+ }
86
+
87
+ .#{$element}#{$name}-right-icon {
88
+ @include cxe-field-button($besm, $right-icon-state-style-map);
89
+
90
+ .#{$state}disabled > & {
91
+ @include cx-add-state-rules($state-style-map, disabled);
92
+ border-width: 0;
93
+ }
94
+ .#{$state}focus > & {
95
+ @include cx-add-state-rules($right-icon-state-style-map, focus);
96
+ }
97
+ .#{$state}error > & {
98
+ @include cx-add-state-rules($right-icon-state-style-map, error);
99
+ }
100
+ }
101
+
102
+ .#{$element}#{$name}-icon {
103
+ @include cxe-field-button-icon($besm, $icon-size);
104
+ }
105
+
106
+ .#{$element}#{$name}-empty-text {
107
+ @include cxe-field-empty-text($empty-text);
108
+ }
109
+ }
110
+
111
+ @if (cx-should-include("cx/widgets/MonthField")) {
112
+ @include cx-monthfield();
113
+ }
@@ -1,80 +1,72 @@
1
- @use "sass:math";
2
- @use "sass:map";
3
- @use "../variables" as *;
4
- @use "../maps" as *;
5
- @use "../../util/scss/besm.scss" as *;
6
- @use "../../util/scss/add-rules.scss" as *;
7
- @use "../../util/scss/calc.scss" as *;
8
- @use "../../util/scss/clockwise.scss" as *;
9
- @use "../../util/scss/include.scss" as *;
10
- @use "./Field.scss" as *;
11
-
12
- @mixin cx-numberfield(
13
- $name: "numberfield",
14
- $state-style-map: $cx-std-field-state-style-map,
15
- $placeholder: $cx-input-placeholder,
16
- $empty-text: $cx-empty-text,
17
- $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
18
- $clear-state-style-map: $cx-clear-state-style-map,
19
- $tool-state-style-map: $cx-input-right-icon-state-style-map,
20
- $icon-size: $cx-default-input-icon-size,
21
- $width: $cx-default-input-width,
22
- $besm: $cx-besm
23
- ) {
24
- $block: map.get($besm, block);
25
- $element: map.get($besm, element);
26
- $state: map.get($besm, state);
27
- $padding: cx-get-state-rule($state-style-map, default, "padding");
28
-
29
- .#{$block}#{$name} {
30
- @include cxb-field($besm, $state-style-map, $width: $width, $input: true);
31
- }
32
-
33
- .#{$element}#{$name}-input {
34
- @include cxe-field-input(
35
- $besm,
36
- $state-style-map,
37
- $placeholder: $placeholder
38
- );
39
-
40
- &::-webkit-inner-spin-button,
41
- &::-webkit-outer-spin-button {
42
- -webkit-appearance: none;
43
- margin: 0;
44
- }
45
-
46
- .#{$state}icon > & {
47
- padding-left: cx-calc(
48
- cx-left($padding),
49
- $cx-default-input-left-tool-size,
50
- $cx-default-input-left-tool-spacing
51
- );
52
- }
53
- }
54
-
55
- .#{$element}#{$name}-tool {
56
- pointer-events: none;
57
- @include cxe-field-button($besm, $tool-state-style-map);
58
- }
59
-
60
- .#{$element}#{$name}-icon {
61
- @include cxe-field-button-icon($besm, $icon-size);
62
- }
63
-
64
- .#{$element}#{$name}-left-icon {
65
- pointer-events: none;
66
- @include cxe-field-button($besm, $left-icon-state-style-map);
67
- }
68
-
69
- .#{$element}#{$name}-clear {
70
- @include cxe-field-button($besm, $clear-state-style-map);
71
- }
72
-
73
- .#{$element}#{$name}-empty-text {
74
- @include cxe-field-empty-text($empty-text);
75
- }
76
- }
77
-
78
- @if (cx-should-include("cx/widgets/NumberField")) {
79
- @include cx-numberfield();
80
- }
1
+ @use "sass:math";
2
+ @use "sass:map";
3
+ @use "../variables" as *;
4
+ @use "../maps" as *;
5
+ @use "../../util/scss/besm.scss" as *;
6
+ @use "../../util/scss/add-rules.scss" as *;
7
+ @use "../../util/scss/calc.scss" as *;
8
+ @use "../../util/scss/clockwise.scss" as *;
9
+ @use "../../util/scss/include.scss" as *;
10
+ @use "./Field.scss" as *;
11
+
12
+ @mixin cx-numberfield(
13
+ $name: "numberfield",
14
+ $state-style-map: $cx-std-field-state-style-map,
15
+ $placeholder: $cx-input-placeholder,
16
+ $empty-text: $cx-empty-text,
17
+ $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
18
+ $clear-state-style-map: $cx-clear-state-style-map,
19
+ $tool-state-style-map: $cx-input-right-icon-state-style-map,
20
+ $icon-size: $cx-default-input-icon-size,
21
+ $width: $cx-default-input-width,
22
+ $besm: $cx-besm
23
+ ) {
24
+ $block: map.get($besm, block);
25
+ $element: map.get($besm, element);
26
+ $state: map.get($besm, state);
27
+ $padding: cx-get-state-rule($state-style-map, default, "padding");
28
+
29
+ .#{$block}#{$name} {
30
+ @include cxb-field($besm, $state-style-map, $width: $width, $input: true);
31
+ }
32
+
33
+ .#{$element}#{$name}-input {
34
+ @include cxe-field-input($besm, $state-style-map, $placeholder: $placeholder);
35
+
36
+ &::-webkit-inner-spin-button,
37
+ &::-webkit-outer-spin-button {
38
+ -webkit-appearance: none;
39
+ margin: 0;
40
+ }
41
+
42
+ .#{$state}icon > & {
43
+ padding-left: cx-calc(cx-top($padding), $cx-default-input-left-tool-size, $cx-default-input-left-tool-spacing);
44
+ }
45
+ }
46
+
47
+ .#{$element}#{$name}-tool {
48
+ pointer-events: none;
49
+ @include cxe-field-button($besm, $tool-state-style-map);
50
+ }
51
+
52
+ .#{$element}#{$name}-icon {
53
+ @include cxe-field-button-icon($besm, $icon-size);
54
+ }
55
+
56
+ .#{$element}#{$name}-left-icon {
57
+ pointer-events: none;
58
+ @include cxe-field-button($besm, $left-icon-state-style-map);
59
+ }
60
+
61
+ .#{$element}#{$name}-clear {
62
+ @include cxe-field-button($besm, $clear-state-style-map);
63
+ }
64
+
65
+ .#{$element}#{$name}-empty-text {
66
+ @include cxe-field-empty-text($empty-text);
67
+ }
68
+ }
69
+
70
+ @if (cx-should-include("cx/widgets/NumberField")) {
71
+ @include cx-numberfield();
72
+ }
@@ -1,117 +1,104 @@
1
- @use "sass:math";
2
- @use "sass:map";
3
- @use "../variables" as *;
4
- @use "../maps" as *;
5
- @use "../../util/scss/add-rules.scss" as *;
6
- @use "../../util/scss/calc.scss" as *;
7
- @use "../../util/scss/clockwise.scss" as *;
8
- @use "../../util/scss/besm.scss" as *;
9
- @use "../../util/scss/include.scss" as *;
10
- @use "./Field.scss" as *;
11
-
12
- @mixin cx-select(
13
- $name: "select",
14
- $state-style-map: $cx-std-field-state-style-map,
15
- $placeholder: $cx-input-placeholder,
16
- $empty-text: $cx-empty-text,
17
- $width: $cx-default-input-width,
18
- $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
19
- $clear-state-style-map: $cx-clear-state-style-map,
20
- $tool-state-style-map: $cx-input-right-icon-state-style-map,
21
- $icon-size: $cx-default-input-icon-size,
22
- $besm: $cx-besm
23
- ) {
24
- $block: map.get($besm, block);
25
- $element: map.get($besm, element);
26
- $state: map.get($besm, state);
27
- $mod: map.get($besm, mod);
28
-
29
- .#{$block}#{$name} {
30
- @include cxb-field(
31
- $besm,
32
- $state-style-map: $state-style-map,
33
- $width: $width,
34
- $input: true
35
- );
36
-
37
- .#{$element}#{$name}-left-icon {
38
- pointer-events: none;
39
- @include cxe-field-button($besm, $left-icon-state-style-map);
40
- }
41
- }
42
-
43
- $padding: cx-get-state-rule($state-style-map, default, "padding");
44
-
45
- .#{$element}#{$name}-select {
46
- @include cxe-field-input(
47
- $besm,
48
- $state-style-map,
49
- $placeholder: $placeholder,
50
- $overrides: (
51
- padding: $cx-default-input-padding-top
52
- calc(
53
- #{$cx-default-input-padding-right} +
54
- #{$cx-default-clear-size} -
55
- #{$cx-default-input-padding-right}
56
- )
57
- $cx-default-input-padding-bottom $cx-default-input-padding-left,
58
- -webkit-appearance: none,
59
- -moz-appearance: none,
60
- -ms-appearance: none,
61
- appearance: none
62
- )
63
- );
64
-
65
- .#{$state}icon > & {
66
- padding-left: cx-calc(
67
- cx-left($padding),
68
- $cx-default-input-left-tool-size,
69
- $cx-default-input-left-tool-spacing
70
- );
71
- }
72
-
73
- .#{$state}empty > & {
74
- @include cx-add-rules($placeholder);
75
- }
76
-
77
- &::-ms-expand {
78
- display: none;
79
- margin: 0;
80
- padding: 0;
81
- }
82
-
83
- option {
84
- background-color: $cx-default-dropdown-background-color;
85
- color: cx-get-state-rule($state-style-map, default, color);
86
- }
87
- }
88
-
89
- .#{$element}#{$name}-clear {
90
- @include cxe-field-button($besm, $clear-state-style-map);
91
- }
92
-
93
- .#{$element}#{$name}-placeholder {
94
- @include cx-add-rules($placeholder);
95
- }
96
-
97
- .#{$element}#{$name}-tool {
98
- pointer-events: none; //cannot call open-dropdown on native element
99
- @include cxe-field-button($besm, $tool-state-style-map);
100
-
101
- .#{$state}disabled > & {
102
- border-width: 0;
103
- @include cx-add-state-rules($state-style-map, disabled);
104
- }
105
- .#{$state}focus > & {
106
- @include cx-add-state-rules($tool-state-style-map, focus);
107
- }
108
- }
109
-
110
- .#{$element}#{$name}-icon {
111
- @include cxe-field-button-icon($besm, $icon-size);
112
- }
113
- }
114
-
115
- @if (cx-should-include("cx/widgets/Select")) {
116
- @include cx-select;
117
- }
1
+ @use "sass:math";
2
+ @use "sass:map";
3
+ @use "../variables" as *;
4
+ @use "../maps" as *;
5
+ @use "../../util/scss/add-rules.scss" as *;
6
+ @use "../../util/scss/calc.scss" as *;
7
+ @use "../../util/scss/clockwise.scss" as *;
8
+ @use "../../util/scss/besm.scss" as *;
9
+ @use "../../util/scss/include.scss" as *;
10
+ @use "./Field.scss" as *;
11
+
12
+ @mixin cx-select(
13
+ $name: "select",
14
+ $state-style-map: $cx-std-field-state-style-map,
15
+ $placeholder: $cx-input-placeholder,
16
+ $empty-text: $cx-empty-text,
17
+ $width: $cx-default-input-width,
18
+ $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
19
+ $clear-state-style-map: $cx-clear-state-style-map,
20
+ $tool-state-style-map: $cx-input-right-icon-state-style-map,
21
+ $icon-size: $cx-default-input-icon-size,
22
+ $besm: $cx-besm
23
+ ) {
24
+ $block: map.get($besm, block);
25
+ $element: map.get($besm, element);
26
+ $state: map.get($besm, state);
27
+ $mod: map.get($besm, mod);
28
+
29
+ .#{$block}#{$name} {
30
+ @include cxb-field($besm, $state-style-map: $state-style-map, $width: $width, $input: true);
31
+
32
+ .#{$element}#{$name}-left-icon {
33
+ pointer-events: none;
34
+ @include cxe-field-button($besm, $left-icon-state-style-map);
35
+ }
36
+ }
37
+
38
+ $padding: cx-get-state-rule($state-style-map, default, "padding");
39
+
40
+ .#{$element}#{$name}-select {
41
+ @include cxe-field-input(
42
+ $besm,
43
+ $state-style-map,
44
+ $placeholder: $placeholder,
45
+ $overrides: (
46
+ padding: $cx-default-input-padding-top
47
+ calc(#{$cx-default-input-padding-right} + #{$cx-default-clear-size} - #{$cx-default-input-padding-right})
48
+ $cx-default-input-padding-bottom $cx-default-input-padding-left,
49
+ -webkit-appearance: none,
50
+ -moz-appearance: none,
51
+ -ms-appearance: none,
52
+ appearance: none
53
+ )
54
+ );
55
+
56
+ .#{$state}icon > & {
57
+ padding-left: cx-calc(cx-top($padding), $cx-default-input-left-tool-size, $cx-default-input-left-tool-spacing);
58
+ }
59
+
60
+ .#{$state}empty > & {
61
+ @include cx-add-rules($placeholder);
62
+ }
63
+
64
+ &::-ms-expand {
65
+ display: none;
66
+ margin: 0;
67
+ padding: 0;
68
+ }
69
+
70
+ option {
71
+ background-color: $cx-default-dropdown-background-color;
72
+ color: cx-get-state-rule($state-style-map, default, color);
73
+ }
74
+ }
75
+
76
+ .#{$element}#{$name}-clear {
77
+ @include cxe-field-button($besm, $clear-state-style-map);
78
+ }
79
+
80
+ .#{$element}#{$name}-placeholder {
81
+ @include cx-add-rules($placeholder);
82
+ }
83
+
84
+ .#{$element}#{$name}-tool {
85
+ pointer-events: none; //cannot call open-dropdown on native element
86
+ @include cxe-field-button($besm, $tool-state-style-map);
87
+
88
+ .#{$state}disabled > & {
89
+ border-width: 0;
90
+ @include cx-add-state-rules($state-style-map, disabled);
91
+ }
92
+ .#{$state}focus > & {
93
+ @include cx-add-state-rules($tool-state-style-map, focus);
94
+ }
95
+ }
96
+
97
+ .#{$element}#{$name}-icon {
98
+ @include cxe-field-button-icon($besm, $icon-size);
99
+ }
100
+ }
101
+
102
+ @if (cx-should-include("cx/widgets/Select")) {
103
+ @include cx-select;
104
+ }