cx 24.10.2 → 24.10.4

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 (70) hide show
  1. package/dist/charts.js +24 -27
  2. package/dist/data.js +26 -29
  3. package/dist/manifest.js +434 -434
  4. package/dist/svg.js +59 -56
  5. package/dist/ui.js +51 -52
  6. package/dist/widgets.css +8 -8
  7. package/dist/widgets.js +40 -44
  8. package/package.json +32 -32
  9. package/src/charts/PieChart.js +2 -2
  10. package/src/charts/PieLabel.js +71 -71
  11. package/src/charts/axis/Axis.js +260 -260
  12. package/src/charts/axis/NumericAxis.js +347 -347
  13. package/src/charts/axis/Stack.js +55 -55
  14. package/src/charts/axis/TimeAxis.js +510 -510
  15. package/src/charts/helpers/PointReducer.js +43 -43
  16. package/src/charts/helpers/SnapPointFinder.js +69 -69
  17. package/src/data/Binding.spec.js +69 -69
  18. package/src/data/Expression.js +221 -221
  19. package/src/data/Expression.spec.js +184 -184
  20. package/src/data/StringTemplate.spec.js +105 -105
  21. package/src/data/getAccessor.spec.js +11 -11
  22. package/src/index.scss +6 -6
  23. package/src/svg/Text.d.ts +40 -40
  24. package/src/ui/Culture.d.ts +55 -55
  25. package/src/ui/Culture.js +139 -139
  26. package/src/ui/FocusManager.js +171 -171
  27. package/src/ui/Instance.d.ts +72 -72
  28. package/src/ui/VDOM.d.ts +12 -12
  29. package/src/ui/app/startAppLoop.js +58 -58
  30. package/src/ui/index.d.ts +42 -42
  31. package/src/ui/layout/LabelsTopLayout.js +134 -134
  32. package/src/util/Console.d.ts +4 -4
  33. package/src/util/index.d.ts +51 -51
  34. package/src/util/index.js +54 -54
  35. package/src/util/isValidIdentifierName.d.ts +1 -1
  36. package/src/util/isValidIdentifierName.js +5 -5
  37. package/src/util/isValidIdentifierName.spec.js +33 -33
  38. package/src/util/scss/add-rules.scss +38 -38
  39. package/src/widgets/CxCredit.scss +37 -37
  40. package/src/widgets/HighlightedSearchText.js +36 -36
  41. package/src/widgets/HighlightedSearchText.scss +18 -18
  42. package/src/widgets/List.scss +91 -91
  43. package/src/widgets/drag-drop/DropZone.js +214 -214
  44. package/src/widgets/form/Calendar.scss +196 -196
  45. package/src/widgets/form/ColorField.js +397 -397
  46. package/src/widgets/form/ColorPicker.scss +283 -283
  47. package/src/widgets/form/DateTimeField.js +573 -573
  48. package/src/widgets/form/LookupField.d.ts +179 -179
  49. package/src/widgets/form/MonthField.js +516 -516
  50. package/src/widgets/form/MonthPicker.scss +118 -118
  51. package/src/widgets/form/NumberField.js +459 -459
  52. package/src/widgets/form/NumberField.scss +61 -61
  53. package/src/widgets/form/Select.scss +99 -99
  54. package/src/widgets/form/Slider.scss +118 -118
  55. package/src/widgets/form/Switch.scss +140 -140
  56. package/src/widgets/form/TextArea.scss +43 -43
  57. package/src/widgets/form/TextField.js +290 -290
  58. package/src/widgets/form/TextField.scss +55 -55
  59. package/src/widgets/form/UploadButton.d.ts +34 -34
  60. package/src/widgets/form/variables.scss +353 -353
  61. package/src/widgets/grid/Grid.scss +2 -2
  62. package/src/widgets/grid/TreeNode.scss +88 -88
  63. package/src/widgets/nav/Menu.scss +74 -74
  64. package/src/widgets/overlay/Dropdown.js +612 -612
  65. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  66. package/src/widgets/overlay/Tooltip.js +300 -300
  67. package/src/widgets/overlay/Window.js +196 -196
  68. package/src/widgets/overlay/captureMouse.js +124 -124
  69. package/src/widgets/overlay/variables.scss +83 -83
  70. package/src/widgets/variables.scss +144 -144
@@ -1,140 +1,140 @@
1
- @mixin cx-switch(
2
- $name: "switch",
3
- $state-style-map: $cx-input-state-style-map,
4
- $styles: $cx-switch-handle-styles,
5
- $width: $cx-default-switch-width,
6
- $handle-size: $cx-default-switch-handle-size,
7
- $axis-size: $cx-default-switch-axis-size,
8
- $axis-background-color: $cx-default-switch-axis-background-color,
9
- $range-background-color: $cx-default-switch-range-background-color,
10
- $empty-text: $cx-empty-text,
11
- $besm: $cx-besm
12
- ) {
13
- $block: map-get($besm, block);
14
- $element: map-get($besm, element);
15
- $state: map-get($besm, state);
16
-
17
- $padding: cx-get-state-rule($state-style-map, default, padding);
18
- $border-width: cx-get-state-rule($state-style-map, default, border-width);
19
-
20
- $outer-styles: cx-deep-map-merge(
21
- $state-style-map,
22
- (
23
- default: (
24
- border-width: cx-top($border-width) 0 cx-bottom($border-width) 0,
25
- padding: cx-top($padding) 0 cx-bottom($padding) 0,
26
- ),
27
- )
28
- );
29
-
30
- .#{$block}#{$name} {
31
- cursor: pointer;
32
- min-width: cx-calc($width, $handle-size);
33
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
34
-
35
- @include cxb-field($besm, $outer-styles, $input: false, $box: true);
36
-
37
- &.#{$state}disabled {
38
- pointer-events: none;
39
- opacity: 0.5;
40
- }
41
-
42
- &:focus {
43
- outline: none;
44
- }
45
- }
46
-
47
- .#{$element}#{$name}-text {
48
- display: inline-block;
49
- margin-left: cx-calc($width, $handle-size);
50
- padding: 0 cx-right($padding) 0 cx-left($padding);
51
- }
52
-
53
- .#{$element}#{$name}-empty-text {
54
- @include cxe-field-empty-text($empty-text);
55
- }
56
-
57
- .#{$element}#{$name}-axis {
58
- user-select: none;
59
- position: absolute;
60
- background-color: $axis-background-color;
61
- border-radius: $axis-size * 0.5;
62
- box-sizing: border-box;
63
- width: $width;
64
-
65
- left: $handle-size * 0.5;
66
- right: $handle-size * 0.5;
67
- top: calc(50% - #{$axis-size * 0.5});
68
- height: $axis-size;
69
- padding: 0 $axis-size * 0.5;
70
- }
71
-
72
- .#{$element}#{$name}-space {
73
- position: relative;
74
- box-sizing: border-box;
75
- width: 100%;
76
- height: 100%;
77
- }
78
-
79
- .#{$element}#{$name}-range {
80
- position: absolute;
81
- background-color: $range-background-color;
82
- border-radius: $axis-size * 0.5;
83
- height: 100%;
84
- left: 0;
85
- width: 0;
86
- opacity: 0;
87
- transform: scale(0);
88
-
89
- transition: all 200ms;
90
-
91
- .#{$state}on & {
92
- width: 100%;
93
- opacity: 1;
94
- transform: none;
95
- }
96
- }
97
-
98
- .#{$element}#{$name}-handle {
99
- position: absolute;
100
- box-sizing: border-box;
101
- width: $handle-size;
102
- height: $handle-size;
103
- margin-left: -$handle-size * 0.5;
104
- margin-top: -$handle-size * 0.5;
105
- left: 0;
106
- top: 50%;
107
- transition: left 200ms;
108
-
109
- @include cx-add-state-rules($styles, default);
110
-
111
- .#{$state}on & {
112
- left: 100%;
113
- @include cx-add-state-rules($styles, on);
114
- }
115
-
116
- .#{$state}on:active & {
117
- @include cx-add-state-rules($styles, on-active);
118
- }
119
-
120
- &:hover {
121
- @include cx-add-state-rules($styles, hover);
122
- }
123
-
124
- .#{$block}#{$name}:focus & {
125
- @include cx-add-state-rules($styles, focus);
126
- }
127
-
128
- .#{$block}#{$name}.#{$state}disabled & {
129
- @include cx-add-state-rules($styles, disabled);
130
- }
131
-
132
- &:active {
133
- @include cx-add-state-rules($styles, active);
134
- }
135
- }
136
- }
137
-
138
- @if (cx-should-include("cx/widgets/Switch")) {
139
- @include cx-switch();
140
- }
1
+ @mixin cx-switch(
2
+ $name: "switch",
3
+ $state-style-map: $cx-input-state-style-map,
4
+ $styles: $cx-switch-handle-styles,
5
+ $width: $cx-default-switch-width,
6
+ $handle-size: $cx-default-switch-handle-size,
7
+ $axis-size: $cx-default-switch-axis-size,
8
+ $axis-background-color: $cx-default-switch-axis-background-color,
9
+ $range-background-color: $cx-default-switch-range-background-color,
10
+ $empty-text: $cx-empty-text,
11
+ $besm: $cx-besm
12
+ ) {
13
+ $block: map-get($besm, block);
14
+ $element: map-get($besm, element);
15
+ $state: map-get($besm, state);
16
+
17
+ $padding: cx-get-state-rule($state-style-map, default, padding);
18
+ $border-width: cx-get-state-rule($state-style-map, default, border-width);
19
+
20
+ $outer-styles: cx-deep-map-merge(
21
+ $state-style-map,
22
+ (
23
+ default: (
24
+ border-width: cx-top($border-width) 0 cx-bottom($border-width) 0,
25
+ padding: cx-top($padding) 0 cx-bottom($padding) 0,
26
+ ),
27
+ )
28
+ );
29
+
30
+ .#{$block}#{$name} {
31
+ cursor: pointer;
32
+ min-width: cx-calc($width, $handle-size);
33
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
34
+
35
+ @include cxb-field($besm, $outer-styles, $input: false, $box: true);
36
+
37
+ &.#{$state}disabled {
38
+ pointer-events: none;
39
+ opacity: 0.5;
40
+ }
41
+
42
+ &:focus {
43
+ outline: none;
44
+ }
45
+ }
46
+
47
+ .#{$element}#{$name}-text {
48
+ display: inline-block;
49
+ margin-left: cx-calc($width, $handle-size);
50
+ padding: 0 cx-right($padding) 0 cx-left($padding);
51
+ }
52
+
53
+ .#{$element}#{$name}-empty-text {
54
+ @include cxe-field-empty-text($empty-text);
55
+ }
56
+
57
+ .#{$element}#{$name}-axis {
58
+ user-select: none;
59
+ position: absolute;
60
+ background-color: $axis-background-color;
61
+ border-radius: $axis-size * 0.5;
62
+ box-sizing: border-box;
63
+ width: $width;
64
+
65
+ left: $handle-size * 0.5;
66
+ right: $handle-size * 0.5;
67
+ top: calc(50% - #{$axis-size * 0.5});
68
+ height: $axis-size;
69
+ padding: 0 $axis-size * 0.5;
70
+ }
71
+
72
+ .#{$element}#{$name}-space {
73
+ position: relative;
74
+ box-sizing: border-box;
75
+ width: 100%;
76
+ height: 100%;
77
+ }
78
+
79
+ .#{$element}#{$name}-range {
80
+ position: absolute;
81
+ background-color: $range-background-color;
82
+ border-radius: $axis-size * 0.5;
83
+ height: 100%;
84
+ left: 0;
85
+ width: 0;
86
+ opacity: 0;
87
+ transform: scale(0);
88
+
89
+ transition: all 200ms;
90
+
91
+ .#{$state}on & {
92
+ width: 100%;
93
+ opacity: 1;
94
+ transform: none;
95
+ }
96
+ }
97
+
98
+ .#{$element}#{$name}-handle {
99
+ position: absolute;
100
+ box-sizing: border-box;
101
+ width: $handle-size;
102
+ height: $handle-size;
103
+ margin-left: -$handle-size * 0.5;
104
+ margin-top: -$handle-size * 0.5;
105
+ left: 0;
106
+ top: 50%;
107
+ transition: left 200ms;
108
+
109
+ @include cx-add-state-rules($styles, default);
110
+
111
+ .#{$state}on & {
112
+ left: 100%;
113
+ @include cx-add-state-rules($styles, on);
114
+ }
115
+
116
+ .#{$state}on:active & {
117
+ @include cx-add-state-rules($styles, on-active);
118
+ }
119
+
120
+ &:hover {
121
+ @include cx-add-state-rules($styles, hover);
122
+ }
123
+
124
+ .#{$block}#{$name}:focus & {
125
+ @include cx-add-state-rules($styles, focus);
126
+ }
127
+
128
+ .#{$block}#{$name}.#{$state}disabled & {
129
+ @include cx-add-state-rules($styles, disabled);
130
+ }
131
+
132
+ &:active {
133
+ @include cx-add-state-rules($styles, active);
134
+ }
135
+ }
136
+ }
137
+
138
+ @if (cx-should-include("cx/widgets/Switch")) {
139
+ @include cx-switch();
140
+ }
@@ -1,43 +1,43 @@
1
- @mixin cx-textarea(
2
- $name: "textarea",
3
- $state-style-map: $cx-textarea-state-style-map,
4
- $placeholder: $cx-input-placeholder,
5
- $empty-text: $cx-empty-text,
6
- $tool-state-style-map: $cx-input-right-icon-state-style-map,
7
- $icon-size: $cx-default-input-icon-size,
8
- $width: $cx-default-textarea-width,
9
- $besm: $cx-besm
10
- ) {
11
- $block: map-get($besm, block);
12
- $element: map-get($besm, element);
13
- $state: map-get($besm, state);
14
- $mod: map-get($besm, mod);
15
-
16
- .#{$block}#{$name} {
17
- line-height: 0;
18
- width: $width;
19
- @include cxb-field($besm, $state-style-map, $input: false);
20
- }
21
-
22
- .#{$element}#{$name}-input {
23
- width: 100%;
24
- height: 100%;
25
- @include cxe-field-input($besm, $state-style-map, $placeholder: $placeholder, $input: false);
26
- }
27
-
28
- .#{$element}#{$name}-tool {
29
- @include cxe-field-button($besm, $tool-state-style-map);
30
- }
31
-
32
- .#{$element}#{$name}-icon {
33
- @include cxe-field-button-icon($besm, $icon-size);
34
- }
35
-
36
- .#{$element}#{$name}-empty-text {
37
- @include cxe-field-empty-text($empty-text);
38
- }
39
- }
40
-
41
- @if (cx-should-include("cx/widgets/TextArea")) {
42
- @include cx-textarea;
43
- }
1
+ @mixin cx-textarea(
2
+ $name: "textarea",
3
+ $state-style-map: $cx-textarea-state-style-map,
4
+ $placeholder: $cx-input-placeholder,
5
+ $empty-text: $cx-empty-text,
6
+ $tool-state-style-map: $cx-input-right-icon-state-style-map,
7
+ $icon-size: $cx-default-input-icon-size,
8
+ $width: $cx-default-textarea-width,
9
+ $besm: $cx-besm
10
+ ) {
11
+ $block: map-get($besm, block);
12
+ $element: map-get($besm, element);
13
+ $state: map-get($besm, state);
14
+ $mod: map-get($besm, mod);
15
+
16
+ .#{$block}#{$name} {
17
+ line-height: 0;
18
+ width: $width;
19
+ @include cxb-field($besm, $state-style-map, $input: false);
20
+ }
21
+
22
+ .#{$element}#{$name}-input {
23
+ width: 100%;
24
+ height: 100%;
25
+ @include cxe-field-input($besm, $state-style-map, $placeholder: $placeholder, $input: false);
26
+ }
27
+
28
+ .#{$element}#{$name}-tool {
29
+ @include cxe-field-button($besm, $tool-state-style-map);
30
+ }
31
+
32
+ .#{$element}#{$name}-icon {
33
+ @include cxe-field-button-icon($besm, $icon-size);
34
+ }
35
+
36
+ .#{$element}#{$name}-empty-text {
37
+ @include cxe-field-empty-text($empty-text);
38
+ }
39
+ }
40
+
41
+ @if (cx-should-include("cx/widgets/TextArea")) {
42
+ @include cx-textarea;
43
+ }