cx 24.11.3 → 25.1.0

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 (108) hide show
  1. package/dist/charts.js +18 -17
  2. package/dist/data.js +2 -2
  3. package/dist/manifest.js +707 -698
  4. package/dist/ui.js +5 -4
  5. package/dist/util.js +40 -10
  6. package/dist/widgets.js +42 -35
  7. package/package.json +32 -32
  8. package/src/charts/Legend.js +167 -167
  9. package/src/charts/Legend.scss +40 -40
  10. package/src/charts/LegendEntry.js +128 -128
  11. package/src/charts/LegendEntry.scss +27 -27
  12. package/src/charts/PieChart.d.ts +92 -92
  13. package/src/charts/PieChart.js +529 -529
  14. package/src/charts/axis/Axis.d.ts +113 -113
  15. package/src/charts/axis/Axis.js +280 -280
  16. package/src/charts/axis/CategoryAxis.d.ts +30 -30
  17. package/src/charts/axis/CategoryAxis.js +241 -241
  18. package/src/charts/axis/NumericAxis.js +351 -351
  19. package/src/charts/axis/Stack.js +55 -55
  20. package/src/charts/axis/TimeAxis.d.ts +28 -28
  21. package/src/charts/axis/TimeAxis.js +611 -610
  22. package/src/charts/helpers/PointReducer.js +47 -47
  23. package/src/charts/helpers/SnapPointFinder.js +69 -69
  24. package/src/data/Binding.spec.js +69 -69
  25. package/src/data/Expression.js +221 -221
  26. package/src/data/Expression.spec.js +217 -217
  27. package/src/data/StringTemplate.js +2 -2
  28. package/src/data/StringTemplate.spec.js +110 -105
  29. package/src/data/getAccessor.spec.js +11 -11
  30. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  31. package/src/hooks/createLocalStorageRef.js +20 -20
  32. package/src/index.scss +6 -6
  33. package/src/ui/Culture.d.ts +57 -55
  34. package/src/ui/Culture.js +139 -139
  35. package/src/ui/FocusManager.js +171 -171
  36. package/src/ui/Format.js +5 -4
  37. package/src/ui/HoverSync.js +3 -3
  38. package/src/ui/Instance.d.ts +72 -72
  39. package/src/ui/Instance.js +614 -614
  40. package/src/ui/Repeater.d.ts +61 -61
  41. package/src/ui/index.d.ts +42 -42
  42. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  43. package/src/ui/layout/ContentPlaceholder.js +105 -105
  44. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  45. package/src/ui/layout/LabelsTopLayout.js +134 -134
  46. package/src/util/Format.js +3 -2
  47. package/src/util/date/encodeDate.d.ts +1 -0
  48. package/src/util/date/encodeDate.js +8 -0
  49. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  50. package/src/util/date/index.d.ts +11 -9
  51. package/src/util/date/index.js +11 -9
  52. package/src/util/date/parseDateInvariant.d.ts +3 -0
  53. package/src/util/date/parseDateInvariant.js +20 -0
  54. package/src/util/getSearchQueryPredicate.js +59 -59
  55. package/src/util/index.d.ts +51 -51
  56. package/src/util/index.js +54 -54
  57. package/src/util/isValidIdentifierName.d.ts +1 -1
  58. package/src/util/isValidIdentifierName.js +5 -5
  59. package/src/util/isValidIdentifierName.spec.js +33 -33
  60. package/src/util/scss/add-rules.scss +38 -38
  61. package/src/widgets/CxCredit.scss +37 -37
  62. package/src/widgets/HighlightedSearchText.js +36 -36
  63. package/src/widgets/HighlightedSearchText.scss +18 -18
  64. package/src/widgets/List.scss +91 -91
  65. package/src/widgets/drag-drop/DropZone.js +214 -214
  66. package/src/widgets/form/Calendar.js +7 -6
  67. package/src/widgets/form/Calendar.scss +196 -196
  68. package/src/widgets/form/Checkbox.scss +127 -127
  69. package/src/widgets/form/ColorField.js +397 -397
  70. package/src/widgets/form/ColorField.scss +96 -96
  71. package/src/widgets/form/ColorPicker.scss +283 -283
  72. package/src/widgets/form/DateTimeField.js +576 -573
  73. package/src/widgets/form/DateTimePicker.js +9 -8
  74. package/src/widgets/form/LookupField.d.ts +179 -179
  75. package/src/widgets/form/LookupField.scss +219 -219
  76. package/src/widgets/form/MonthField.js +517 -516
  77. package/src/widgets/form/MonthPicker.js +17 -16
  78. package/src/widgets/form/MonthPicker.scss +118 -118
  79. package/src/widgets/form/NumberField.js +459 -459
  80. package/src/widgets/form/NumberField.scss +61 -61
  81. package/src/widgets/form/Radio.scss +121 -121
  82. package/src/widgets/form/Select.scss +99 -99
  83. package/src/widgets/form/Slider.scss +118 -118
  84. package/src/widgets/form/Switch.scss +140 -140
  85. package/src/widgets/form/TextArea.scss +43 -43
  86. package/src/widgets/form/TextField.js +290 -290
  87. package/src/widgets/form/TextField.scss +55 -55
  88. package/src/widgets/form/UploadButton.d.ts +34 -34
  89. package/src/widgets/form/variables.scss +353 -353
  90. package/src/widgets/grid/Grid.d.ts +442 -442
  91. package/src/widgets/grid/Grid.js +5 -4
  92. package/src/widgets/grid/Grid.scss +637 -637
  93. package/src/widgets/grid/GridRow.js +2 -2
  94. package/src/widgets/grid/TreeNode.d.ts +23 -23
  95. package/src/widgets/grid/TreeNode.scss +88 -88
  96. package/src/widgets/grid/variables.scss +133 -133
  97. package/src/widgets/nav/Menu.scss +74 -74
  98. package/src/widgets/overlay/Dropdown.js +612 -612
  99. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  100. package/src/widgets/overlay/Overlay.d.ts +73 -73
  101. package/src/widgets/overlay/Tooltip.js +303 -303
  102. package/src/widgets/overlay/Window.js +202 -202
  103. package/src/widgets/overlay/captureMouse.js +124 -124
  104. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  105. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -52
  106. package/src/widgets/overlay/index.d.ts +11 -11
  107. package/src/widgets/overlay/index.js +11 -11
  108. package/src/widgets/variables.scss +144 -144
@@ -76,12 +76,12 @@ export class GridRowComponent extends VDOM.Component {
76
76
  let { CSS } = widget;
77
77
  let move, up, keyDown, leave;
78
78
 
79
- if (dragSource || data.hoverId) {
79
+ if (dragSource || data.hoverId != null) {
80
80
  move = this.onMouseMove;
81
81
  up = ddMouseUp;
82
82
  }
83
83
 
84
- if (data.hoverId) {
84
+ if (data.hoverId != null) {
85
85
  leave = this.onMouseLeave;
86
86
  }
87
87
 
@@ -1,23 +1,23 @@
1
- import * as Cx from "../../core";
2
-
3
- interface TreeNodeProps extends Cx.WidgetProps {
4
- level?: Cx.NumberProp;
5
- expanded?: Cx.BooleanProp;
6
- leaf?: Cx.BooleanProp;
7
- text?: Cx.StringProp;
8
- loading?: Cx.BooleanProp;
9
- icon?: Cx.StringProp;
10
-
11
- itemIcon?: Cx.StringProp;
12
- leafIcon?: Cx.StringProp;
13
- loadingIcon?: string;
14
- folderIcon?: Cx.StringProp;
15
- openFolderIcon?: Cx.StringProp;
16
-
17
- /** Base CSS class to be applied to the element. Defaults to 'treenode'. */
18
- baseClass?: string;
19
- hideIcon?: boolean;
20
- hideArrow?: Cx.BooleanProp;
21
- }
22
-
23
- export class TreeNode extends Cx.Widget<TreeNodeProps> {}
1
+ import * as Cx from "../../core";
2
+
3
+ interface TreeNodeProps extends Cx.WidgetProps {
4
+ level?: Cx.NumberProp;
5
+ expanded?: Cx.BooleanProp;
6
+ leaf?: Cx.BooleanProp;
7
+ text?: Cx.StringProp;
8
+ loading?: Cx.BooleanProp;
9
+ icon?: Cx.StringProp;
10
+
11
+ itemIcon?: Cx.StringProp;
12
+ leafIcon?: Cx.StringProp;
13
+ loadingIcon?: string;
14
+ folderIcon?: Cx.StringProp;
15
+ openFolderIcon?: Cx.StringProp;
16
+
17
+ /** Base CSS class to be applied to the element. Defaults to 'treenode'. */
18
+ baseClass?: string;
19
+ hideIcon?: boolean;
20
+ hideArrow?: Cx.BooleanProp;
21
+ }
22
+
23
+ export class TreeNode extends Cx.Widget<TreeNodeProps> {}
@@ -1,88 +1,88 @@
1
- @mixin cx-treenode(
2
- $name: "treenode",
3
- $icon-size: $cx-default-icon-size,
4
- $handle-size: $cx-default-input-tool-size,
5
- $handle-state-style-map: $cx-input-right-icon-state-style-map,
6
- $besm: $cx-besm
7
- ) {
8
- $block: map-get($besm, block);
9
- $element: map-get($besm, element);
10
- $state: map-get($besm, state);
11
- $mod: map-get($besm, mod);
12
-
13
- .#{$block}#{$name} {
14
- padding-left: $handle-size + $icon-size * 0.25;
15
- position: relative;
16
-
17
- &.#{$state}icon {
18
- padding-left: $handle-size + $icon-size + $icon-size * 0.25;
19
- }
20
-
21
- @for $i from 1 through 20 {
22
- &.#{$state}level-#{$i} {
23
- margin-left: #{($i * 20)}px;
24
- }
25
- }
26
- }
27
-
28
- .#{$element}#{$name}-handle {
29
- position: absolute;
30
-
31
- @include cx-add-state-rules($handle-state-style-map, default);
32
-
33
- left: 0;
34
- top: 50%;
35
- margin-top: -$handle-size * 0.5;
36
- bottom: 0;
37
- width: $handle-size + $icon-size;
38
- height: $handle-size;
39
-
40
- &:hover {
41
- @include cx-add-state-rules($handle-state-style-map, hover);
42
- }
43
-
44
- &:active {
45
- @include cx-add-state-rules($handle-state-style-map, active);
46
- }
47
- }
48
-
49
- .#{$element}#{$name}-arrow {
50
- display: block;
51
- position: absolute;
52
- left: 0;
53
- top: 50%;
54
- margin-top: -$icon-size * 0.5;
55
- margin-left: ($handle-size - $icon-size) * 0.5;
56
- height: $icon-size;
57
- width: $icon-size;
58
- line-height: $icon-size;
59
- transform: rotate(-90deg);
60
- transition: transform 0.2s;
61
-
62
- .#{$state}expanded & {
63
- transform: rotate(0);
64
- }
65
- }
66
-
67
- .#{$element}#{$name}-icon {
68
- display: block;
69
- position: absolute;
70
- left: 0;
71
- top: 50%;
72
- margin-top: -$icon-size * 0.5;
73
- margin-left: ($handle-size + $icon-size) * 0.5;
74
- height: $icon-size;
75
- width: $icon-size;
76
- line-height: $icon-size;
77
- }
78
-
79
- .#{$block}grid.#{$mod}tree {
80
- td {
81
- border-top: none;
82
- }
83
- }
84
- }
85
-
86
- @if (cx-should-include("cx/widgets/TreeNode")) {
87
- @include cx-treenode();
88
- }
1
+ @mixin cx-treenode(
2
+ $name: "treenode",
3
+ $icon-size: $cx-default-icon-size,
4
+ $handle-size: $cx-default-input-tool-size,
5
+ $handle-state-style-map: $cx-input-right-icon-state-style-map,
6
+ $besm: $cx-besm
7
+ ) {
8
+ $block: map-get($besm, block);
9
+ $element: map-get($besm, element);
10
+ $state: map-get($besm, state);
11
+ $mod: map-get($besm, mod);
12
+
13
+ .#{$block}#{$name} {
14
+ padding-left: $handle-size + $icon-size * 0.25;
15
+ position: relative;
16
+
17
+ &.#{$state}icon {
18
+ padding-left: $handle-size + $icon-size + $icon-size * 0.25;
19
+ }
20
+
21
+ @for $i from 1 through 20 {
22
+ &.#{$state}level-#{$i} {
23
+ margin-left: #{($i * 20)}px;
24
+ }
25
+ }
26
+ }
27
+
28
+ .#{$element}#{$name}-handle {
29
+ position: absolute;
30
+
31
+ @include cx-add-state-rules($handle-state-style-map, default);
32
+
33
+ left: 0;
34
+ top: 50%;
35
+ margin-top: -$handle-size * 0.5;
36
+ bottom: 0;
37
+ width: $handle-size + $icon-size;
38
+ height: $handle-size;
39
+
40
+ &:hover {
41
+ @include cx-add-state-rules($handle-state-style-map, hover);
42
+ }
43
+
44
+ &:active {
45
+ @include cx-add-state-rules($handle-state-style-map, active);
46
+ }
47
+ }
48
+
49
+ .#{$element}#{$name}-arrow {
50
+ display: block;
51
+ position: absolute;
52
+ left: 0;
53
+ top: 50%;
54
+ margin-top: -$icon-size * 0.5;
55
+ margin-left: ($handle-size - $icon-size) * 0.5;
56
+ height: $icon-size;
57
+ width: $icon-size;
58
+ line-height: $icon-size;
59
+ transform: rotate(-90deg);
60
+ transition: transform 0.2s;
61
+
62
+ .#{$state}expanded & {
63
+ transform: rotate(0);
64
+ }
65
+ }
66
+
67
+ .#{$element}#{$name}-icon {
68
+ display: block;
69
+ position: absolute;
70
+ left: 0;
71
+ top: 50%;
72
+ margin-top: -$icon-size * 0.5;
73
+ margin-left: ($handle-size + $icon-size) * 0.5;
74
+ height: $icon-size;
75
+ width: $icon-size;
76
+ line-height: $icon-size;
77
+ }
78
+
79
+ .#{$block}grid.#{$mod}tree {
80
+ td {
81
+ border-top: none;
82
+ }
83
+ }
84
+ }
85
+
86
+ @if (cx-should-include("cx/widgets/TreeNode")) {
87
+ @include cx-treenode();
88
+ }
@@ -1,133 +1,133 @@
1
- // GRID
2
- $cx-default-grid-font-size: $cx-default-box-font-size !default;
3
- $cx-default-grid-border-color: $cx-default-border-color !default;
4
- $cx-default-grid-border-radius: null !default;
5
- $cx-default-grid-box-shadow: null !default;
6
-
7
- // header
8
- $cx-default-grid-header-font-size: $cx-default-box-font-size !default;
9
- $cx-default-grid-header-font-weight: normal !default;
10
- $cx-default-grid-header-line-height: null !default;
11
- $cx-default-grid-header-color: $cx-default-color !default;
12
- $cx-default-grid-header-background-color: #eee !default;
13
- $cx-default-grid-header-border-color: $cx-default-border-color !default;
14
- $cx-default-grid-header-box-shadow: null !default;
15
- $cx-default-grid-header-padding: null !default;
16
-
17
- $cx-grid-header-state-style-map: (
18
- default: (
19
- font-size: $cx-default-grid-header-font-size,
20
- font-weight: $cx-default-grid-header-font-weight,
21
- line-height: $cx-default-grid-header-line-height,
22
- color: $cx-default-grid-header-color,
23
- background-color: $cx-default-grid-header-background-color,
24
- border-color: $cx-default-grid-header-border-color,
25
- background-clip: border-box,
26
- padding: $cx-default-grid-header-padding,
27
- ),
28
- hover: (
29
- background-color: darken($cx-default-grid-header-background-color, 2),
30
- ),
31
- sorted: (
32
- background-color: darken($cx-default-grid-header-background-color, 7),
33
- ),
34
- sorted-hover: (
35
- background-color: darken($cx-default-grid-header-background-color, 5),
36
- ),
37
- ) !default;
38
-
39
- // data
40
- $cx-default-grid-data-font-size: null !default;
41
- $cx-default-grid-data-font-weight: null !default;
42
- $cx-default-grid-data-line-height: null !default;
43
- $cx-default-grid-data-background-color: transparent !default;
44
- $cx-default-grid-data-alternate-background-color: null !default;
45
- $cx-default-grid-data-border-color: $cx-default-grid-border-color !default;
46
- $cx-default-grid-data-padding: 5px !default;
47
- $cx-default-grid-caption-gap: 15px !default;
48
-
49
- $cx-grid-data-state-style-map: cx-deep-map-merge(
50
- $cx-list-item,
51
- (
52
- default: (
53
- font-size: $cx-default-grid-data-font-size,
54
- line-height: $cx-default-grid-data-line-height,
55
- font-weight: $cx-default-grid-data-font-weight,
56
- background-color: $cx-default-grid-data-background-color,
57
- border-color: $cx-default-grid-data-border-color,
58
- padding: $cx-default-grid-data-padding,
59
- ),
60
- alternate: (
61
- background-color: $cx-default-grid-data-alternate-background-color,
62
- ),
63
- )
64
- ) !default;
65
-
66
- $cx-grid-group-caption-level-style-map: (
67
- level-1: (
68
- font-weight: bold,
69
- font-size: 115%,
70
- ),
71
- level-2: (
72
- font-weight: bold,
73
- font-size: 130%,
74
- border-bottom: 1px solid grey,
75
- ),
76
- level-3: (
77
- font-weight: bold,
78
- font-size: 145%,
79
- border-bottom: 1px solid grey,
80
- ),
81
- level-4: (
82
- font-weight: bold,
83
- font-size: 160%,
84
- border-bottom: 1px solid grey,
85
- ),
86
- );
87
-
88
- $cx-grid-group-footer-level-style-map: (
89
- level-1: (
90
- font-weight: bold,
91
- border-top: 1px solid $cx-default-grid-border-color,
92
- ),
93
- level-2: (
94
- font-weight: bold,
95
- font-size: 110%,
96
- border-top: 1px solid grey,
97
- ),
98
- level-3: (
99
- font-weight: bold,
100
- font-size: 120%,
101
- border-top: 1px solid grey,
102
- ),
103
- level-4: (
104
- font-weight: bold,
105
- font-size: 130%,
106
- border-top: 1px solid grey,
107
- ),
108
- );
109
-
110
- // pagination
111
- $cx-grid-pagination-default-border-width: $cx-default-border-width !default;
112
- $cx-grid-pagination-default-border-color: $cx-default-border-color !default;
113
- $cx-grid-pagination-default-border-radius: null !default;
114
- $cx-grid-pagination-default-outer-border-radius: $cx-default-border-radius !default;
115
- $cx-grid-pagination-default-padding: cx-top($cx-default-box-padding) 2 * cx-top($cx-default-box-padding) !default;
116
-
117
- $cx-grid-pagination-state-style-map: cx-deep-map-merge($cx-list-item, ()) !default;
118
-
119
- $cx-grid-cell-cursor-style: (
120
- left: -1px,
121
- top: -1px,
122
- right: -1px,
123
- bottom: -1px,
124
- background: rgba(green, 0.1),
125
- border: 2px solid rgba(green, 1),
126
- );
127
-
128
- $cx-dependencies: map-merge(
129
- $cx-dependencies,
130
- (
131
- "cx/widgets/Grid": "cx/widgets/DragClone",
132
- )
133
- );
1
+ // GRID
2
+ $cx-default-grid-font-size: $cx-default-box-font-size !default;
3
+ $cx-default-grid-border-color: $cx-default-border-color !default;
4
+ $cx-default-grid-border-radius: null !default;
5
+ $cx-default-grid-box-shadow: null !default;
6
+
7
+ // header
8
+ $cx-default-grid-header-font-size: $cx-default-box-font-size !default;
9
+ $cx-default-grid-header-font-weight: normal !default;
10
+ $cx-default-grid-header-line-height: null !default;
11
+ $cx-default-grid-header-color: $cx-default-color !default;
12
+ $cx-default-grid-header-background-color: #eee !default;
13
+ $cx-default-grid-header-border-color: $cx-default-border-color !default;
14
+ $cx-default-grid-header-box-shadow: null !default;
15
+ $cx-default-grid-header-padding: null !default;
16
+
17
+ $cx-grid-header-state-style-map: (
18
+ default: (
19
+ font-size: $cx-default-grid-header-font-size,
20
+ font-weight: $cx-default-grid-header-font-weight,
21
+ line-height: $cx-default-grid-header-line-height,
22
+ color: $cx-default-grid-header-color,
23
+ background-color: $cx-default-grid-header-background-color,
24
+ border-color: $cx-default-grid-header-border-color,
25
+ background-clip: border-box,
26
+ padding: $cx-default-grid-header-padding,
27
+ ),
28
+ hover: (
29
+ background-color: darken($cx-default-grid-header-background-color, 2),
30
+ ),
31
+ sorted: (
32
+ background-color: darken($cx-default-grid-header-background-color, 7),
33
+ ),
34
+ sorted-hover: (
35
+ background-color: darken($cx-default-grid-header-background-color, 5),
36
+ ),
37
+ ) !default;
38
+
39
+ // data
40
+ $cx-default-grid-data-font-size: null !default;
41
+ $cx-default-grid-data-font-weight: null !default;
42
+ $cx-default-grid-data-line-height: null !default;
43
+ $cx-default-grid-data-background-color: transparent !default;
44
+ $cx-default-grid-data-alternate-background-color: null !default;
45
+ $cx-default-grid-data-border-color: $cx-default-grid-border-color !default;
46
+ $cx-default-grid-data-padding: 5px !default;
47
+ $cx-default-grid-caption-gap: 15px !default;
48
+
49
+ $cx-grid-data-state-style-map: cx-deep-map-merge(
50
+ $cx-list-item,
51
+ (
52
+ default: (
53
+ font-size: $cx-default-grid-data-font-size,
54
+ line-height: $cx-default-grid-data-line-height,
55
+ font-weight: $cx-default-grid-data-font-weight,
56
+ background-color: $cx-default-grid-data-background-color,
57
+ border-color: $cx-default-grid-data-border-color,
58
+ padding: $cx-default-grid-data-padding,
59
+ ),
60
+ alternate: (
61
+ background-color: $cx-default-grid-data-alternate-background-color,
62
+ ),
63
+ )
64
+ ) !default;
65
+
66
+ $cx-grid-group-caption-level-style-map: (
67
+ level-1: (
68
+ font-weight: bold,
69
+ font-size: 115%,
70
+ ),
71
+ level-2: (
72
+ font-weight: bold,
73
+ font-size: 130%,
74
+ border-bottom: 1px solid grey,
75
+ ),
76
+ level-3: (
77
+ font-weight: bold,
78
+ font-size: 145%,
79
+ border-bottom: 1px solid grey,
80
+ ),
81
+ level-4: (
82
+ font-weight: bold,
83
+ font-size: 160%,
84
+ border-bottom: 1px solid grey,
85
+ ),
86
+ );
87
+
88
+ $cx-grid-group-footer-level-style-map: (
89
+ level-1: (
90
+ font-weight: bold,
91
+ border-top: 1px solid $cx-default-grid-border-color,
92
+ ),
93
+ level-2: (
94
+ font-weight: bold,
95
+ font-size: 110%,
96
+ border-top: 1px solid grey,
97
+ ),
98
+ level-3: (
99
+ font-weight: bold,
100
+ font-size: 120%,
101
+ border-top: 1px solid grey,
102
+ ),
103
+ level-4: (
104
+ font-weight: bold,
105
+ font-size: 130%,
106
+ border-top: 1px solid grey,
107
+ ),
108
+ );
109
+
110
+ // pagination
111
+ $cx-grid-pagination-default-border-width: $cx-default-border-width !default;
112
+ $cx-grid-pagination-default-border-color: $cx-default-border-color !default;
113
+ $cx-grid-pagination-default-border-radius: null !default;
114
+ $cx-grid-pagination-default-outer-border-radius: $cx-default-border-radius !default;
115
+ $cx-grid-pagination-default-padding: cx-top($cx-default-box-padding) 2 * cx-top($cx-default-box-padding) !default;
116
+
117
+ $cx-grid-pagination-state-style-map: cx-deep-map-merge($cx-list-item, ()) !default;
118
+
119
+ $cx-grid-cell-cursor-style: (
120
+ left: -1px,
121
+ top: -1px,
122
+ right: -1px,
123
+ bottom: -1px,
124
+ background: rgba(green, 0.1),
125
+ border: 2px solid rgba(green, 1),
126
+ );
127
+
128
+ $cx-dependencies: map-merge(
129
+ $cx-dependencies,
130
+ (
131
+ "cx/widgets/Grid": "cx/widgets/DragClone",
132
+ )
133
+ );
@@ -1,74 +1,74 @@
1
- @mixin cx-menu($name: "menu", $state-style-map: $cx-menu-state-style-map, $besm: $cx-besm) {
2
- $block: map-get($besm, block);
3
- $element: map-get($besm, element);
4
- $state: map-get($besm, state);
5
- $mod: map-get($besm, mod);
6
-
7
- .#{$block}#{$name} {
8
- box-sizing: border-box;
9
- margin: 0;
10
- padding: 0;
11
- list-style: none;
12
-
13
- @include cx-add-state-rules($state-style-map, default);
14
-
15
- &.#{$state}horizontal {
16
- white-space: nowrap;
17
-
18
- & > .#{$element}#{$name}-item {
19
- display: inline-block;
20
- user-select: none;
21
-
22
- @each $size, $value in $cx-menu-padding-options {
23
- &.#{$state}size-#{$size} > .#{$mod}#{$name} {
24
- margin: 0 cx-right($value) 0 cx-left($value);
25
- }
26
- }
27
- }
28
- }
29
-
30
- @each $size, $value in $cx-menu-padding-options {
31
- &.#{$state}vertical.#{$state}#{$size}-item-padding .#{$mod}#{$name} {
32
- margin: $value;
33
- display: block;
34
- }
35
- }
36
-
37
- .#{$element}#{$name}-item {
38
- & > hr {
39
- border: none;
40
- border-top: 1px solid $cx-default-menu-separator-color;
41
- margin: map-get($cx-menu-padding-options, medium);
42
- }
43
-
44
- &.#{$state}hidden {
45
- visibility: hidden;
46
- position: absolute;
47
- }
48
- }
49
-
50
- &.#{$state}overflow {
51
- overflow: hidden;
52
- display: flex;
53
-
54
- & > .#{$element}#{$name}-item:last-child {
55
- visibility: hidden;
56
- position: absolute;
57
- max-height: 100%;
58
- }
59
-
60
- &.#{$state}pack > .#{$element}#{$name}-item:last-child {
61
- visibility: visible;
62
- position: relative;
63
- }
64
- }
65
- }
66
-
67
- .#{$element}#{$name}-spacer {
68
- flex: 1 1 0%;
69
- }
70
- }
71
-
72
- @if (cx-should-include("cx/widgets/Menu")) {
73
- @include cx-menu();
74
- }
1
+ @mixin cx-menu($name: "menu", $state-style-map: $cx-menu-state-style-map, $besm: $cx-besm) {
2
+ $block: map-get($besm, block);
3
+ $element: map-get($besm, element);
4
+ $state: map-get($besm, state);
5
+ $mod: map-get($besm, mod);
6
+
7
+ .#{$block}#{$name} {
8
+ box-sizing: border-box;
9
+ margin: 0;
10
+ padding: 0;
11
+ list-style: none;
12
+
13
+ @include cx-add-state-rules($state-style-map, default);
14
+
15
+ &.#{$state}horizontal {
16
+ white-space: nowrap;
17
+
18
+ & > .#{$element}#{$name}-item {
19
+ display: inline-block;
20
+ user-select: none;
21
+
22
+ @each $size, $value in $cx-menu-padding-options {
23
+ &.#{$state}size-#{$size} > .#{$mod}#{$name} {
24
+ margin: 0 cx-right($value) 0 cx-left($value);
25
+ }
26
+ }
27
+ }
28
+ }
29
+
30
+ @each $size, $value in $cx-menu-padding-options {
31
+ &.#{$state}vertical.#{$state}#{$size}-item-padding .#{$mod}#{$name} {
32
+ margin: $value;
33
+ display: block;
34
+ }
35
+ }
36
+
37
+ .#{$element}#{$name}-item {
38
+ & > hr {
39
+ border: none;
40
+ border-top: 1px solid $cx-default-menu-separator-color;
41
+ margin: map-get($cx-menu-padding-options, medium);
42
+ }
43
+
44
+ &.#{$state}hidden {
45
+ visibility: hidden;
46
+ position: absolute;
47
+ }
48
+ }
49
+
50
+ &.#{$state}overflow {
51
+ overflow: hidden;
52
+ display: flex;
53
+
54
+ & > .#{$element}#{$name}-item:last-child {
55
+ visibility: hidden;
56
+ position: absolute;
57
+ max-height: 100%;
58
+ }
59
+
60
+ &.#{$state}pack > .#{$element}#{$name}-item:last-child {
61
+ visibility: visible;
62
+ position: relative;
63
+ }
64
+ }
65
+ }
66
+
67
+ .#{$element}#{$name}-spacer {
68
+ flex: 1 1 0%;
69
+ }
70
+ }
71
+
72
+ @if (cx-should-include("cx/widgets/Menu")) {
73
+ @include cx-menu();
74
+ }