cx 25.6.2 → 25.6.3

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 (103) hide show
  1. package/dist/manifest.js +749 -749
  2. package/dist/widgets.css +5 -0
  3. package/dist/widgets.js +77 -34
  4. package/package.json +1 -1
  5. package/src/charts/Legend.d.ts +45 -45
  6. package/src/charts/LegendEntry.js +128 -128
  7. package/src/charts/LegendEntry.scss +27 -27
  8. package/src/charts/PieChart.d.ts +92 -92
  9. package/src/charts/RangeMarker.js +159 -159
  10. package/src/charts/axis/Axis.d.ts +113 -113
  11. package/src/charts/axis/Axis.js +280 -280
  12. package/src/charts/axis/CategoryAxis.d.ts +30 -30
  13. package/src/charts/axis/CategoryAxis.js +241 -241
  14. package/src/charts/axis/NumericAxis.js +351 -351
  15. package/src/charts/axis/Stack.js +55 -55
  16. package/src/charts/axis/TimeAxis.js +611 -611
  17. package/src/charts/helpers/SnapPointFinder.js +69 -69
  18. package/src/data/Binding.spec.js +69 -69
  19. package/src/data/ExposedValueView.d.ts +19 -19
  20. package/src/data/Expression.js +229 -229
  21. package/src/data/Expression.spec.js +229 -229
  22. package/src/data/StringTemplate.js +92 -92
  23. package/src/data/StringTemplate.spec.js +132 -132
  24. package/src/data/StructuredSelector.js +132 -132
  25. package/src/data/getAccessor.spec.js +11 -11
  26. package/src/data/getSelector.js +49 -49
  27. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  28. package/src/hooks/createLocalStorageRef.js +20 -20
  29. package/src/index.scss +6 -6
  30. package/src/ui/Culture.d.ts +57 -57
  31. package/src/ui/Culture.js +139 -139
  32. package/src/ui/FocusManager.js +171 -171
  33. package/src/ui/Format.js +108 -108
  34. package/src/ui/HoverSync.js +147 -147
  35. package/src/ui/Repeater.d.ts +61 -61
  36. package/src/ui/index.d.ts +42 -42
  37. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  38. package/src/ui/layout/ContentPlaceholder.js +105 -105
  39. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  40. package/src/ui/layout/LabelsTopLayout.js +134 -134
  41. package/src/util/Format.js +270 -270
  42. package/src/util/date/encodeDate.d.ts +1 -1
  43. package/src/util/date/encodeDate.js +8 -8
  44. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  45. package/src/util/date/index.d.ts +11 -11
  46. package/src/util/date/index.js +11 -11
  47. package/src/util/date/parseDateInvariant.d.ts +3 -3
  48. package/src/util/date/parseDateInvariant.js +20 -20
  49. package/src/util/getSearchQueryPredicate.js +59 -59
  50. package/src/util/index.d.ts +51 -51
  51. package/src/util/index.js +54 -54
  52. package/src/util/isValidIdentifierName.d.ts +1 -1
  53. package/src/util/isValidIdentifierName.js +5 -5
  54. package/src/util/isValidIdentifierName.spec.js +33 -33
  55. package/src/util/scss/add-rules.scss +38 -38
  56. package/src/widgets/CxCredit.scss +37 -37
  57. package/src/widgets/HighlightedSearchText.js +36 -36
  58. package/src/widgets/HighlightedSearchText.scss +18 -18
  59. package/src/widgets/List.scss +91 -91
  60. package/src/widgets/Sandbox.d.ts +18 -16
  61. package/src/widgets/Sandbox.js +65 -63
  62. package/src/widgets/drag-drop/DropZone.js +214 -214
  63. package/src/widgets/form/Calendar.js +618 -618
  64. package/src/widgets/form/Calendar.scss +196 -196
  65. package/src/widgets/form/Checkbox.scss +127 -127
  66. package/src/widgets/form/ColorField.js +397 -397
  67. package/src/widgets/form/ColorField.scss +96 -96
  68. package/src/widgets/form/ColorPicker.scss +283 -283
  69. package/src/widgets/form/DateTimeField.js +576 -576
  70. package/src/widgets/form/DateTimePicker.js +392 -392
  71. package/src/widgets/form/LookupField.d.ts +179 -179
  72. package/src/widgets/form/LookupField.scss +219 -219
  73. package/src/widgets/form/MonthPicker.d.ts +8 -0
  74. package/src/widgets/form/MonthPicker.js +65 -23
  75. package/src/widgets/form/MonthPicker.scss +4 -0
  76. package/src/widgets/form/NumberField.js +459 -459
  77. package/src/widgets/form/NumberField.scss +61 -61
  78. package/src/widgets/form/Radio.scss +121 -121
  79. package/src/widgets/form/Select.scss +99 -99
  80. package/src/widgets/form/Slider.scss +118 -118
  81. package/src/widgets/form/Switch.scss +140 -140
  82. package/src/widgets/form/TextArea.scss +43 -43
  83. package/src/widgets/form/TextField.js +290 -290
  84. package/src/widgets/form/TextField.scss +55 -55
  85. package/src/widgets/form/UploadButton.d.ts +34 -34
  86. package/src/widgets/form/variables.scss +353 -353
  87. package/src/widgets/grid/Grid.d.ts +442 -442
  88. package/src/widgets/grid/GridRow.js +228 -228
  89. package/src/widgets/grid/TreeNode.d.ts +23 -23
  90. package/src/widgets/grid/TreeNode.scss +88 -88
  91. package/src/widgets/grid/variables.scss +133 -133
  92. package/src/widgets/nav/LinkButton.js +128 -128
  93. package/src/widgets/nav/Menu.scss +74 -74
  94. package/src/widgets/overlay/Dropdown.js +612 -612
  95. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  96. package/src/widgets/overlay/Overlay.d.ts +73 -73
  97. package/src/widgets/overlay/Window.js +202 -202
  98. package/src/widgets/overlay/captureMouse.js +124 -124
  99. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  100. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  101. package/src/widgets/overlay/index.d.ts +11 -11
  102. package/src/widgets/overlay/index.js +11 -11
  103. package/src/widgets/variables.scss +144 -144
@@ -1,61 +1,61 @@
1
- @mixin cx-numberfield(
2
- $name: "numberfield",
3
- $state-style-map: $cx-std-field-state-style-map,
4
- $placeholder: $cx-input-placeholder,
5
- $empty-text: $cx-empty-text,
6
- $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
7
- $clear-state-style-map: $cx-clear-state-style-map,
8
- $tool-state-style-map: $cx-input-right-icon-state-style-map,
9
- $icon-size: $cx-default-input-icon-size,
10
- $width: $cx-default-input-width,
11
- $besm: $cx-besm
12
- ) {
13
- $block: map-get($besm, block);
14
- $element: map-get($besm, element);
15
- $state: map-get($besm, state);
16
- $padding: cx-get-state-rule($state-style-map, default, "padding");
17
-
18
- .#{$block}#{$name} {
19
- @include cxb-field($besm, $state-style-map, $width: $width, $input: true);
20
- }
21
-
22
- .#{$element}#{$name}-input {
23
- @include cxe-field-input($besm, $state-style-map, $placeholder: $placeholder);
24
-
25
- &::-webkit-inner-spin-button,
26
- &::-webkit-outer-spin-button {
27
- -webkit-appearance: none;
28
- margin: 0;
29
- }
30
-
31
- .#{$state}icon > & {
32
- padding-left: cx-calc(2 * cx-left($padding), $icon-size);
33
- }
34
- }
35
-
36
- .#{$element}#{$name}-tool {
37
- pointer-events: none;
38
- @include cxe-field-button($besm, $tool-state-style-map);
39
- }
40
-
41
- .#{$element}#{$name}-icon {
42
- @include cxe-field-button-icon($besm, $icon-size);
43
- }
44
-
45
- .#{$element}#{$name}-left-icon {
46
- pointer-events: none;
47
- @include cxe-field-button($besm, $left-icon-state-style-map);
48
- }
49
-
50
- .#{$element}#{$name}-clear {
51
- @include cxe-field-button($besm, $clear-state-style-map);
52
- }
53
-
54
- .#{$element}#{$name}-empty-text {
55
- @include cxe-field-empty-text($empty-text);
56
- }
57
- }
58
-
59
- @if (cx-should-include("cx/widgets/NumberField")) {
60
- @include cx-numberfield();
61
- }
1
+ @mixin cx-numberfield(
2
+ $name: "numberfield",
3
+ $state-style-map: $cx-std-field-state-style-map,
4
+ $placeholder: $cx-input-placeholder,
5
+ $empty-text: $cx-empty-text,
6
+ $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
7
+ $clear-state-style-map: $cx-clear-state-style-map,
8
+ $tool-state-style-map: $cx-input-right-icon-state-style-map,
9
+ $icon-size: $cx-default-input-icon-size,
10
+ $width: $cx-default-input-width,
11
+ $besm: $cx-besm
12
+ ) {
13
+ $block: map-get($besm, block);
14
+ $element: map-get($besm, element);
15
+ $state: map-get($besm, state);
16
+ $padding: cx-get-state-rule($state-style-map, default, "padding");
17
+
18
+ .#{$block}#{$name} {
19
+ @include cxb-field($besm, $state-style-map, $width: $width, $input: true);
20
+ }
21
+
22
+ .#{$element}#{$name}-input {
23
+ @include cxe-field-input($besm, $state-style-map, $placeholder: $placeholder);
24
+
25
+ &::-webkit-inner-spin-button,
26
+ &::-webkit-outer-spin-button {
27
+ -webkit-appearance: none;
28
+ margin: 0;
29
+ }
30
+
31
+ .#{$state}icon > & {
32
+ padding-left: cx-calc(2 * cx-left($padding), $icon-size);
33
+ }
34
+ }
35
+
36
+ .#{$element}#{$name}-tool {
37
+ pointer-events: none;
38
+ @include cxe-field-button($besm, $tool-state-style-map);
39
+ }
40
+
41
+ .#{$element}#{$name}-icon {
42
+ @include cxe-field-button-icon($besm, $icon-size);
43
+ }
44
+
45
+ .#{$element}#{$name}-left-icon {
46
+ pointer-events: none;
47
+ @include cxe-field-button($besm, $left-icon-state-style-map);
48
+ }
49
+
50
+ .#{$element}#{$name}-clear {
51
+ @include cxe-field-button($besm, $clear-state-style-map);
52
+ }
53
+
54
+ .#{$element}#{$name}-empty-text {
55
+ @include cxe-field-empty-text($empty-text);
56
+ }
57
+ }
58
+
59
+ @if (cx-should-include("cx/widgets/NumberField")) {
60
+ @include cx-numberfield();
61
+ }
@@ -1,121 +1,121 @@
1
- @mixin cx-radio(
2
- $name: "radio",
3
- $state-style-map: $cx-radio-state-style-map,
4
- $size: $cx-default-radio-size,
5
- $besm: $cx-besm
6
- ) {
7
- $block: map-get($besm, block);
8
- $element: map-get($besm, element);
9
- $state: map-get($besm, state);
10
-
11
- $padding: cx-get-state-rule($state-style-map, default, padding);
12
- $border-width: cx-get-state-rule($state-style-map, default, border-width);
13
-
14
- $outer-styles: cx-deep-map-merge(
15
- $state-style-map,
16
- (
17
- default: (
18
- border-width: cx-top($border-width) 0 cx-bottom($border-width) 0,
19
- ),
20
- )
21
- );
22
-
23
- .#{$block}#{$name} {
24
- min-width: $size;
25
- @include cxb-field($besm, $outer-styles, $input: false, $box: true);
26
- }
27
-
28
- .#{$element}#{$name}-radio {
29
- padding: 0;
30
- margin: 0 !important;
31
- width: $size;
32
- height: $size;
33
- top: calc(50% - #{$size * 0.5});
34
- left: 0;
35
- display: inline-block;
36
- position: absolute;
37
- -webkit-backface-visibility: hidden;
38
- outline: none;
39
-
40
- &::-moz-focus-outer {
41
- border: 0;
42
- }
43
-
44
- &:focus {
45
- box-shadow: 0 0 2px 2px rgba(77, 144, 254, 0.8);
46
- background: transparent;
47
- border-radius: 50%;
48
- outline: none;
49
- }
50
- }
51
-
52
- .#{$element}#{$name}-text {
53
- display: inline-block;
54
- margin-left: $size;
55
- user-select: none;
56
-
57
- .#{$state}disabled > & {
58
- opacity: 0.5;
59
- }
60
- }
61
-
62
- //non-native implementation
63
- .#{$element}#{$name}-input {
64
- width: $size;
65
- height: $size;
66
- top: calc(50% - #{$size * 0.5});
67
- left: 0;
68
- display: inline-block;
69
- position: absolute;
70
- //overflow: hidden;
71
- opacity: 1;
72
-
73
- @include cxe-field-input(
74
- $besm,
75
- $state-style-map,
76
- $input: false,
77
- $overrides: (
78
- default: (
79
- border-radius: 50%,
80
- padding: 0,
81
- margin: 0 !important,
82
- )
83
- )
84
- );
85
-
86
- &.#{$state}checked {
87
- @include cx-add-state-rules($state-style-map, checked);
88
-
89
- &:focus {
90
- @include cx-add-state-rules($state-style-map, checked-focus);
91
- }
92
- &:hover {
93
- @include cx-add-state-rules($state-style-map, checked-hover);
94
- }
95
-
96
- .#{$state}disabled > & {
97
- @include cx-add-state-rules($state-style-map, disabled-checked);
98
- }
99
- }
100
-
101
- &:before {
102
- content: " ";
103
- width: calc(100% - 6px);
104
- height: calc(100% - 6px);
105
- visibility: hidden;
106
- position: absolute;
107
- margin: 3px;
108
- box-sizing: border-box;
109
- background-color: currentColor;
110
- border-radius: 50%;
111
- }
112
-
113
- &.#{$state}checked:before {
114
- visibility: visible;
115
- }
116
- }
117
- }
118
-
119
- @if (cx-should-include("cx/widgets/Radio")) {
120
- @include cx-radio();
121
- }
1
+ @mixin cx-radio(
2
+ $name: "radio",
3
+ $state-style-map: $cx-radio-state-style-map,
4
+ $size: $cx-default-radio-size,
5
+ $besm: $cx-besm
6
+ ) {
7
+ $block: map-get($besm, block);
8
+ $element: map-get($besm, element);
9
+ $state: map-get($besm, state);
10
+
11
+ $padding: cx-get-state-rule($state-style-map, default, padding);
12
+ $border-width: cx-get-state-rule($state-style-map, default, border-width);
13
+
14
+ $outer-styles: cx-deep-map-merge(
15
+ $state-style-map,
16
+ (
17
+ default: (
18
+ border-width: cx-top($border-width) 0 cx-bottom($border-width) 0,
19
+ ),
20
+ )
21
+ );
22
+
23
+ .#{$block}#{$name} {
24
+ min-width: $size;
25
+ @include cxb-field($besm, $outer-styles, $input: false, $box: true);
26
+ }
27
+
28
+ .#{$element}#{$name}-radio {
29
+ padding: 0;
30
+ margin: 0 !important;
31
+ width: $size;
32
+ height: $size;
33
+ top: calc(50% - #{$size * 0.5});
34
+ left: 0;
35
+ display: inline-block;
36
+ position: absolute;
37
+ -webkit-backface-visibility: hidden;
38
+ outline: none;
39
+
40
+ &::-moz-focus-outer {
41
+ border: 0;
42
+ }
43
+
44
+ &:focus {
45
+ box-shadow: 0 0 2px 2px rgba(77, 144, 254, 0.8);
46
+ background: transparent;
47
+ border-radius: 50%;
48
+ outline: none;
49
+ }
50
+ }
51
+
52
+ .#{$element}#{$name}-text {
53
+ display: inline-block;
54
+ margin-left: $size;
55
+ user-select: none;
56
+
57
+ .#{$state}disabled > & {
58
+ opacity: 0.5;
59
+ }
60
+ }
61
+
62
+ //non-native implementation
63
+ .#{$element}#{$name}-input {
64
+ width: $size;
65
+ height: $size;
66
+ top: calc(50% - #{$size * 0.5});
67
+ left: 0;
68
+ display: inline-block;
69
+ position: absolute;
70
+ //overflow: hidden;
71
+ opacity: 1;
72
+
73
+ @include cxe-field-input(
74
+ $besm,
75
+ $state-style-map,
76
+ $input: false,
77
+ $overrides: (
78
+ default: (
79
+ border-radius: 50%,
80
+ padding: 0,
81
+ margin: 0 !important,
82
+ )
83
+ )
84
+ );
85
+
86
+ &.#{$state}checked {
87
+ @include cx-add-state-rules($state-style-map, checked);
88
+
89
+ &:focus {
90
+ @include cx-add-state-rules($state-style-map, checked-focus);
91
+ }
92
+ &:hover {
93
+ @include cx-add-state-rules($state-style-map, checked-hover);
94
+ }
95
+
96
+ .#{$state}disabled > & {
97
+ @include cx-add-state-rules($state-style-map, disabled-checked);
98
+ }
99
+ }
100
+
101
+ &:before {
102
+ content: " ";
103
+ width: calc(100% - 6px);
104
+ height: calc(100% - 6px);
105
+ visibility: hidden;
106
+ position: absolute;
107
+ margin: 3px;
108
+ box-sizing: border-box;
109
+ background-color: currentColor;
110
+ border-radius: 50%;
111
+ }
112
+
113
+ &.#{$state}checked:before {
114
+ visibility: visible;
115
+ }
116
+ }
117
+ }
118
+
119
+ @if (cx-should-include("cx/widgets/Radio")) {
120
+ @include cx-radio();
121
+ }
@@ -1,99 +1,99 @@
1
- @import "../overlay/Dropdown";
2
-
3
- @mixin cx-select(
4
- $name: "select",
5
- $state-style-map: $cx-std-field-state-style-map,
6
- $placeholder: $cx-input-placeholder,
7
- $empty-text: $cx-empty-text,
8
- $width: $cx-default-input-width,
9
- $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
10
- $clear-state-style-map: $cx-clear-state-style-map,
11
- $tool-state-style-map: $cx-input-right-icon-state-style-map,
12
- $icon-size: $cx-default-input-icon-size,
13
- $besm: $cx-besm
14
- ) {
15
- $block: map-get($besm, block);
16
- $element: map-get($besm, element);
17
- $state: map-get($besm, state);
18
- $mod: map-get($besm, mod);
19
-
20
- .#{$block}#{$name} {
21
- @include cxb-field($besm, $state-style-map: $state-style-map, $width: $width, $input: true);
22
-
23
- .#{$element}#{$name}-left-icon {
24
- pointer-events: none;
25
- @include cxe-field-button($besm, $left-icon-state-style-map);
26
- }
27
- }
28
-
29
- $padding: cx-get-state-rule($state-style-map, default, "padding");
30
-
31
- .#{$element}#{$name}-select {
32
- @include cxe-field-input(
33
- $besm,
34
- $state-style-map,
35
- $placeholder: $placeholder,
36
- $overrides: (
37
- padding: cx-top($cx-default-input-padding)
38
- calc(
39
- #{cx-right($cx-default-input-padding)} + #{$cx-default-clear-size} - #{cx-right(
40
- $cx-default-input-padding
41
- )}
42
- )
43
- cx-bottom($cx-default-input-padding) cx-left($cx-default-input-padding),
44
- -webkit-appearance: none,
45
- -moz-appearance: none,
46
- -ms-appearance: none,
47
- appearance: none
48
- )
49
- );
50
-
51
- .#{$state}icon > & {
52
- padding-left: cx-calc(2 * cx-left($padding), $icon-size);
53
- }
54
-
55
- .#{$state}empty > & {
56
- @include cx-add-rules($placeholder);
57
- }
58
-
59
- &::-ms-expand {
60
- display: none;
61
- margin: 0;
62
- padding: 0;
63
- }
64
-
65
- option {
66
- background-color: $cx-default-dropdown-background-color;
67
- color: cx-get-state-rule($state-style-map, default, color);
68
- }
69
- }
70
-
71
- .#{$element}#{$name}-clear {
72
- @include cxe-field-button($besm, $clear-state-style-map);
73
- }
74
-
75
- .#{$element}#{$name}-placeholder {
76
- @include cx-add-rules($placeholder);
77
- }
78
-
79
- .#{$element}#{$name}-tool {
80
- pointer-events: none; //cannot call open-dropdown on native element
81
- @include cxe-field-button($besm, $tool-state-style-map);
82
-
83
- .#{$state}disabled > & {
84
- border-width: 0;
85
- @include cx-add-state-rules($state-style-map, disabled);
86
- }
87
- .#{$state}focus > & {
88
- @include cx-add-state-rules($tool-state-style-map, focus);
89
- }
90
- }
91
-
92
- .#{$element}#{$name}-icon {
93
- @include cxe-field-button-icon($besm, $icon-size);
94
- }
95
- }
96
-
97
- @if (cx-should-include("cx/widgets/Select")) {
98
- @include cx-select;
99
- }
1
+ @import "../overlay/Dropdown";
2
+
3
+ @mixin cx-select(
4
+ $name: "select",
5
+ $state-style-map: $cx-std-field-state-style-map,
6
+ $placeholder: $cx-input-placeholder,
7
+ $empty-text: $cx-empty-text,
8
+ $width: $cx-default-input-width,
9
+ $left-icon-state-style-map: $cx-input-left-icon-state-style-map,
10
+ $clear-state-style-map: $cx-clear-state-style-map,
11
+ $tool-state-style-map: $cx-input-right-icon-state-style-map,
12
+ $icon-size: $cx-default-input-icon-size,
13
+ $besm: $cx-besm
14
+ ) {
15
+ $block: map-get($besm, block);
16
+ $element: map-get($besm, element);
17
+ $state: map-get($besm, state);
18
+ $mod: map-get($besm, mod);
19
+
20
+ .#{$block}#{$name} {
21
+ @include cxb-field($besm, $state-style-map: $state-style-map, $width: $width, $input: true);
22
+
23
+ .#{$element}#{$name}-left-icon {
24
+ pointer-events: none;
25
+ @include cxe-field-button($besm, $left-icon-state-style-map);
26
+ }
27
+ }
28
+
29
+ $padding: cx-get-state-rule($state-style-map, default, "padding");
30
+
31
+ .#{$element}#{$name}-select {
32
+ @include cxe-field-input(
33
+ $besm,
34
+ $state-style-map,
35
+ $placeholder: $placeholder,
36
+ $overrides: (
37
+ padding: cx-top($cx-default-input-padding)
38
+ calc(
39
+ #{cx-right($cx-default-input-padding)} + #{$cx-default-clear-size} - #{cx-right(
40
+ $cx-default-input-padding
41
+ )}
42
+ )
43
+ cx-bottom($cx-default-input-padding) cx-left($cx-default-input-padding),
44
+ -webkit-appearance: none,
45
+ -moz-appearance: none,
46
+ -ms-appearance: none,
47
+ appearance: none
48
+ )
49
+ );
50
+
51
+ .#{$state}icon > & {
52
+ padding-left: cx-calc(2 * cx-left($padding), $icon-size);
53
+ }
54
+
55
+ .#{$state}empty > & {
56
+ @include cx-add-rules($placeholder);
57
+ }
58
+
59
+ &::-ms-expand {
60
+ display: none;
61
+ margin: 0;
62
+ padding: 0;
63
+ }
64
+
65
+ option {
66
+ background-color: $cx-default-dropdown-background-color;
67
+ color: cx-get-state-rule($state-style-map, default, color);
68
+ }
69
+ }
70
+
71
+ .#{$element}#{$name}-clear {
72
+ @include cxe-field-button($besm, $clear-state-style-map);
73
+ }
74
+
75
+ .#{$element}#{$name}-placeholder {
76
+ @include cx-add-rules($placeholder);
77
+ }
78
+
79
+ .#{$element}#{$name}-tool {
80
+ pointer-events: none; //cannot call open-dropdown on native element
81
+ @include cxe-field-button($besm, $tool-state-style-map);
82
+
83
+ .#{$state}disabled > & {
84
+ border-width: 0;
85
+ @include cx-add-state-rules($state-style-map, disabled);
86
+ }
87
+ .#{$state}focus > & {
88
+ @include cx-add-state-rules($tool-state-style-map, focus);
89
+ }
90
+ }
91
+
92
+ .#{$element}#{$name}-icon {
93
+ @include cxe-field-button-icon($besm, $icon-size);
94
+ }
95
+ }
96
+
97
+ @if (cx-should-include("cx/widgets/Select")) {
98
+ @include cx-select;
99
+ }