cx 24.8.6 → 24.9.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.
@@ -1,275 +1,283 @@
1
- //@if cx-call-once("cx/widgets/checker-background") {
2
- // %cx-checker-bg {
3
- // background-repeat: repeat;
4
- // background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuOWwzfk4AAAAfSURBVChTY9i5Y89/dAwEDOh4SCjEJohN8+BXuOc/AOttNBKJWD4sAAAAAElFTkSuQmCC");
5
- // }
6
- //}
7
-
8
- @mixin cx-checker-background($tile-size: 4px, $color: rgba(gray, 0.5)) {
9
- background-image: linear-gradient(45deg, $color 25%, transparent 25%),
10
- linear-gradient(-45deg, $color 25%, transparent 25%), linear-gradient(45deg, transparent 75%, $color 75%),
11
- linear-gradient(-45deg, transparent 75%, $color 75%);
12
- background-size: 2 * $tile-size 2 * $tile-size;
13
- background-position: 0 0, 0 $tile-size, $tile-size -#{$tile-size}, -#{$tile-size} 0px;
14
- }
15
-
16
- @mixin cx-colorpicker(
17
- $name: "colorpicker",
18
- $state-style-map: $cx-colorpicker-state-style-map,
19
- $placeholder: $cx-input-placeholder,
20
- $besm: $cx-besm
21
- ) {
22
- $block: map-get($besm, block);
23
- $element: map-get($besm, element);
24
- $state: map-get($besm, state);
25
-
26
- $size: 220px;
27
-
28
- .#{$block}#{$name} {
29
- $styles: cx-deep-map-merge(
30
- $state-style-map,
31
- (
32
- default: (
33
- padding: 4px,
34
- ),
35
- )
36
- );
37
-
38
- @include cx-add-state-rules($styles, default);
39
-
40
- display: inline-flex;
41
- flex-direction: column;
42
-
43
- @media screen and (min-width: 500px) {
44
- flex-direction: row;
45
- }
46
-
47
- &:hover {
48
- @include cx-add-state-rules($state-style-map, hover);
49
- }
50
-
51
- input {
52
- @include cxe-field-input(
53
- $besm,
54
- $state-style-map,
55
- $placeholder: $placeholder,
56
- $input: false,
57
- $overrides: (
58
- default: (
59
- line-height: 14px,
60
- font-size: 11px,
61
- font-family: $cx-default-colorpicker-font-family,
62
- )
63
- )
64
- );
65
- }
66
- }
67
-
68
- .#{$element}#{$name}-picker {
69
- width: $size;
70
- height: $size;
71
- margin: 4px;
72
- //cursor: crosshair;
73
- position: relative;
74
- touch-action: none;
75
-
76
- background: -webkit-linear-gradient(
77
- top,
78
- hsl(0, 0%, 100%) 0%,
79
- hsla(0, 0%, 100%, 0) 50%,
80
- hsla(0, 0%, 0%, 0) 50%,
81
- hsl(0, 0%, 0%) 100%
82
- ),
83
- -webkit-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
84
- background: -moz-linear-gradient(
85
- top,
86
- hsl(0, 0%, 100%) 0%,
87
- hsla(0, 0%, 100%, 0) 50%,
88
- hsla(0, 0%, 0%, 0) 50%,
89
- hsl(0, 0%, 0%) 100%
90
- ),
91
- -moz-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
92
- background: -ms-linear-gradient(
93
- top,
94
- hsl(0, 0%, 100%) 0%,
95
- hsla(0, 0%, 100%, 0) 50%,
96
- hsla(0, 0%, 0%, 0) 50%,
97
- hsl(0, 0%, 0%) 100%
98
- ),
99
- -ms-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
100
- background: -o-linear-gradient(
101
- top,
102
- hsl(0, 0%, 100%) 0%,
103
- hsla(0, 0%, 100%, 0) 50%,
104
- hsla(0, 0%, 0%, 0) 50%,
105
- hsl(0, 0%, 0%) 100%
106
- ),
107
- -o-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
108
- }
109
-
110
- .#{$element}#{$name}-indicator {
111
- position: absolute;
112
- border: 2px solid rgba(255, 255, 255, 0.8);
113
- border-radius: 50%;
114
- box-sizing: border-box;
115
- width: 9px;
116
- height: 9px;
117
- left: calc(50% - 5px);
118
- top: calc(50% - 5px);
119
- }
120
-
121
- .#{$element}#{$name}-hue {
122
- height: 15px;
123
- position: relative;
124
- background: -moz-linear-gradient(
125
- left,
126
- #f00 0%,
127
- #ff0 16.66%,
128
- #0f0 33.33%,
129
- #0ff 50%,
130
- #00f 66.66%,
131
- #f0f 83.33%,
132
- #f00 100%
133
- );
134
- background: -webkit-linear-gradient(
135
- left,
136
- #f00 0%,
137
- #ff0 16.66%,
138
- #0f0 33.33%,
139
- #0ff 50%,
140
- #00f 66.66%,
141
- #f0f 83.33%,
142
- #f00 100%
143
- );
144
- background: -ms-linear-gradient(
145
- left,
146
- #f00 0%,
147
- #ff0 16.66%,
148
- #0f0 33.33%,
149
- #0ff 50%,
150
- #00f 66.66%,
151
- #f0f 83.33%,
152
- #f00 100%
153
- );
154
- background: -o-linear-gradient(
155
- left,
156
- #f00 0%,
157
- #ff0 16.66%,
158
- #0f0 33.33%,
159
- #0ff 50%,
160
- #00f 66.66%,
161
- #f0f 83.33%,
162
- #f00 100%
163
- );
164
- touch-action: none;
165
-
166
- .#{$element}#{$name}-indicator {
167
- border-color: rgba(0, 0, 0, 0.5);
168
- height: calc(100% + 4px);
169
- border-radius: 2px;
170
- width: 4px;
171
- top: -2px;
172
- }
173
- }
174
-
175
- .#{$element}#{$name}-alpha {
176
- height: 16px;
177
- //@extend %cx-checker-bg;
178
- @include cx-checker-background();
179
- position: relative;
180
- touch-action: none;
181
-
182
- & > div:first-child {
183
- width: 100%;
184
- height: 100%;
185
- }
186
-
187
- .#{$element}#{$name}-indicator {
188
- border-color: rgba(0, 0, 0, 0.5);
189
- top: -2px;
190
- height: calc(100% + 4px);
191
- border-radius: 2px;
192
- width: 4px;
193
- }
194
- }
195
-
196
- .#{$element}#{$name}-details {
197
- width: $size;
198
- min-height: 170px;
199
- margin: 4px;
200
- display: flex;
201
- flex-direction: column;
202
- justify-content: space-between;
203
- }
204
-
205
- .#{$element}#{$name}-inputs {
206
- label {
207
- width: 25%;
208
- display: inline-block;
209
- text-align: right;
210
-
211
- input {
212
- margin-left: 2px;
213
- width: 60%;
214
- text-align: center;
215
- }
216
- }
217
- }
218
-
219
- .#{$element}#{$name}-pixel-picker {
220
- display: flex;
221
- width: 20px;
222
- height: 20px;
223
- flex-shrink: 0;
224
- align-items: center;
225
- margin-top: 4px;
226
-
227
- svg path {
228
- fill: currentColor;
229
- }
230
-
231
- &:hover {
232
- cursor: pointer;
233
-
234
- svg path {
235
- fill: currentColor;
236
- opacity: 0.5;
237
- }
238
- }
239
- }
240
-
241
- .#{$element}#{$name}-preview {
242
- display: flex;
243
- }
244
-
245
- .#{$element}#{$name}-color {
246
- @include cx-checker-background();
247
- height: 64px;
248
- width: 64px;
249
- border-radius: 4px;
250
- align-self: flex-end;
251
-
252
- & > div {
253
- width: 100%;
254
- height: 100%;
255
- }
256
- }
257
-
258
- .#{$element}#{$name}-values {
259
- flex-grow: 1;
260
- margin: 0 8px;
261
-
262
- input {
263
- width: 100%;
264
- display: block;
265
- }
266
-
267
- input:not(:last-child) {
268
- margin: 0 0 4px 0;
269
- }
270
- }
271
- }
272
-
273
- @if (cx-should-include("cx/widgets/ColorPicker")) {
274
- @include cx-colorpicker();
275
- }
1
+ //@if cx-call-once("cx/widgets/checker-background") {
2
+ // %cx-checker-bg {
3
+ // background-repeat: repeat;
4
+ // background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuOWwzfk4AAAAfSURBVChTY9i5Y89/dAwEDOh4SCjEJohN8+BXuOc/AOttNBKJWD4sAAAAAElFTkSuQmCC");
5
+ // }
6
+ //}
7
+
8
+ @mixin cx-checker-background($tile-size: 4px, $color: rgba(gray, 0.5)) {
9
+ background-image: linear-gradient(45deg, $color 25%, transparent 25%),
10
+ linear-gradient(-45deg, $color 25%, transparent 25%), linear-gradient(45deg, transparent 75%, $color 75%),
11
+ linear-gradient(-45deg, transparent 75%, $color 75%);
12
+ background-size: 2 * $tile-size 2 * $tile-size;
13
+ background-position:
14
+ 0 0,
15
+ 0 $tile-size,
16
+ $tile-size -#{$tile-size},
17
+ -#{$tile-size} 0px;
18
+ }
19
+
20
+ @mixin cx-colorpicker(
21
+ $name: "colorpicker",
22
+ $state-style-map: $cx-colorpicker-state-style-map,
23
+ $placeholder: $cx-input-placeholder,
24
+ $besm: $cx-besm
25
+ ) {
26
+ $block: map-get($besm, block);
27
+ $element: map-get($besm, element);
28
+ $state: map-get($besm, state);
29
+
30
+ $size: 220px;
31
+
32
+ .#{$block}#{$name} {
33
+ $styles: cx-deep-map-merge(
34
+ $state-style-map,
35
+ (
36
+ default: (
37
+ padding: 4px,
38
+ ),
39
+ )
40
+ );
41
+
42
+ display: inline-flex;
43
+ flex-direction: column;
44
+
45
+ @include cx-add-state-rules($styles, default);
46
+
47
+ @media screen and (min-width: 500px) {
48
+ flex-direction: row;
49
+ }
50
+
51
+ &:hover {
52
+ @include cx-add-state-rules($state-style-map, hover);
53
+ }
54
+
55
+ input {
56
+ @include cxe-field-input(
57
+ $besm,
58
+ $state-style-map,
59
+ $placeholder: $placeholder,
60
+ $input: false,
61
+ $overrides: (
62
+ default: (
63
+ line-height: 14px,
64
+ font-size: 11px,
65
+ font-family: $cx-default-colorpicker-font-family,
66
+ )
67
+ )
68
+ );
69
+ }
70
+ }
71
+
72
+ .#{$element}#{$name}-picker {
73
+ width: $size;
74
+ height: $size;
75
+ margin: 4px;
76
+ //cursor: crosshair;
77
+ position: relative;
78
+ touch-action: none;
79
+
80
+ background:
81
+ -webkit-linear-gradient(
82
+ top,
83
+ hsl(0, 0%, 100%) 0%,
84
+ hsla(0, 0%, 100%, 0) 50%,
85
+ hsla(0, 0%, 0%, 0) 50%,
86
+ hsl(0, 0%, 0%) 100%
87
+ ),
88
+ -webkit-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
89
+ background:
90
+ -moz-linear-gradient(
91
+ top,
92
+ hsl(0, 0%, 100%) 0%,
93
+ hsla(0, 0%, 100%, 0) 50%,
94
+ hsla(0, 0%, 0%, 0) 50%,
95
+ hsl(0, 0%, 0%) 100%
96
+ ),
97
+ -moz-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
98
+ background:
99
+ -ms-linear-gradient(
100
+ top,
101
+ hsl(0, 0%, 100%) 0%,
102
+ hsla(0, 0%, 100%, 0) 50%,
103
+ hsla(0, 0%, 0%, 0) 50%,
104
+ hsl(0, 0%, 0%) 100%
105
+ ),
106
+ -ms-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
107
+ background:
108
+ -o-linear-gradient(
109
+ top,
110
+ hsl(0, 0%, 100%) 0%,
111
+ hsla(0, 0%, 100%, 0) 50%,
112
+ hsla(0, 0%, 0%, 0) 50%,
113
+ hsl(0, 0%, 0%) 100%
114
+ ),
115
+ -o-linear-gradient(left, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
116
+ }
117
+
118
+ .#{$element}#{$name}-indicator {
119
+ position: absolute;
120
+ border: 2px solid rgba(255, 255, 255, 0.8);
121
+ border-radius: 50%;
122
+ box-sizing: border-box;
123
+ width: 9px;
124
+ height: 9px;
125
+ left: calc(50% - 5px);
126
+ top: calc(50% - 5px);
127
+ }
128
+
129
+ .#{$element}#{$name}-hue {
130
+ height: 15px;
131
+ position: relative;
132
+ background: -moz-linear-gradient(
133
+ left,
134
+ #f00 0%,
135
+ #ff0 16.66%,
136
+ #0f0 33.33%,
137
+ #0ff 50%,
138
+ #00f 66.66%,
139
+ #f0f 83.33%,
140
+ #f00 100%
141
+ );
142
+ background: -webkit-linear-gradient(
143
+ left,
144
+ #f00 0%,
145
+ #ff0 16.66%,
146
+ #0f0 33.33%,
147
+ #0ff 50%,
148
+ #00f 66.66%,
149
+ #f0f 83.33%,
150
+ #f00 100%
151
+ );
152
+ background: -ms-linear-gradient(
153
+ left,
154
+ #f00 0%,
155
+ #ff0 16.66%,
156
+ #0f0 33.33%,
157
+ #0ff 50%,
158
+ #00f 66.66%,
159
+ #f0f 83.33%,
160
+ #f00 100%
161
+ );
162
+ background: -o-linear-gradient(
163
+ left,
164
+ #f00 0%,
165
+ #ff0 16.66%,
166
+ #0f0 33.33%,
167
+ #0ff 50%,
168
+ #00f 66.66%,
169
+ #f0f 83.33%,
170
+ #f00 100%
171
+ );
172
+ touch-action: none;
173
+
174
+ .#{$element}#{$name}-indicator {
175
+ border-color: rgba(0, 0, 0, 0.5);
176
+ height: calc(100% + 4px);
177
+ border-radius: 2px;
178
+ width: 4px;
179
+ top: -2px;
180
+ }
181
+ }
182
+
183
+ .#{$element}#{$name}-alpha {
184
+ height: 16px;
185
+ //@extend %cx-checker-bg;
186
+ @include cx-checker-background();
187
+ position: relative;
188
+ touch-action: none;
189
+
190
+ & > div:first-child {
191
+ width: 100%;
192
+ height: 100%;
193
+ }
194
+
195
+ .#{$element}#{$name}-indicator {
196
+ border-color: rgba(0, 0, 0, 0.5);
197
+ top: -2px;
198
+ height: calc(100% + 4px);
199
+ border-radius: 2px;
200
+ width: 4px;
201
+ }
202
+ }
203
+
204
+ .#{$element}#{$name}-details {
205
+ width: $size;
206
+ min-height: 170px;
207
+ margin: 4px;
208
+ display: flex;
209
+ flex-direction: column;
210
+ justify-content: space-between;
211
+ }
212
+
213
+ .#{$element}#{$name}-inputs {
214
+ label {
215
+ width: 25%;
216
+ display: inline-block;
217
+ text-align: right;
218
+
219
+ input {
220
+ margin-left: 2px;
221
+ width: 60%;
222
+ text-align: center;
223
+ }
224
+ }
225
+ }
226
+
227
+ .#{$element}#{$name}-pixel-picker {
228
+ display: flex;
229
+ width: 20px;
230
+ height: 20px;
231
+ flex-shrink: 0;
232
+ align-items: center;
233
+ margin-top: 4px;
234
+
235
+ svg path {
236
+ fill: currentColor;
237
+ }
238
+
239
+ &:hover {
240
+ cursor: pointer;
241
+
242
+ svg path {
243
+ fill: currentColor;
244
+ opacity: 0.5;
245
+ }
246
+ }
247
+ }
248
+
249
+ .#{$element}#{$name}-preview {
250
+ display: flex;
251
+ }
252
+
253
+ .#{$element}#{$name}-color {
254
+ @include cx-checker-background();
255
+ height: 64px;
256
+ width: 64px;
257
+ border-radius: 4px;
258
+ align-self: flex-end;
259
+
260
+ & > div {
261
+ width: 100%;
262
+ height: 100%;
263
+ }
264
+ }
265
+
266
+ .#{$element}#{$name}-values {
267
+ flex-grow: 1;
268
+ margin: 0 8px;
269
+
270
+ input {
271
+ width: 100%;
272
+ display: block;
273
+ }
274
+
275
+ input:not(:last-child) {
276
+ margin: 0 0 4px 0;
277
+ }
278
+ }
279
+ }
280
+
281
+ @if (cx-should-include("cx/widgets/ColorPicker")) {
282
+ @include cx-colorpicker();
283
+ }