@litejs/ui 24.7.0 → 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.
package/README.md CHANGED
@@ -11,12 +11,12 @@ LiteJS UI – [![Size][3]][4] [![Buy Me A Tea][5]][6]
11
11
  LiteJS UI is an old-school framework for high-quality web UIs,
12
12
  used on heavy-traffic websites since 2006.
13
13
 
14
- - Dependency-free, weighs around 20KB (+8KB polyfills for ancient browsers).
14
+ - Dependency-free, weighs around 25kB (+8kB polyfills for old browsers).
15
15
  - Written in ES5, compatible with all browsers (including IE5.5).
16
16
  - No transpiling/compiling/bundling headache, just write a working code.
17
17
 
18
- For usage instructions, see [wiki](https://github.com/litejs/ui/wiki)
19
- and [Quick-Start](https://github.com/litejs/litejs/wiki/Quick-Start) guide.
18
+ For usage instructions, see [Quick-Start](https://github.com/litejs/litejs/wiki/Quick-Start) guide
19
+ and [wiki](https://github.com/litejs/ui/wiki).
20
20
 
21
21
 
22
22
  ## Contributing
package/css/anim.css ADDED
@@ -0,0 +1,20 @@
1
+
2
+ /**
3
+ * 1. Trigger GPU acceleration.
4
+ * Remove first flicker on iphone.
5
+ */
6
+
7
+ .anim,
8
+ .anim:after,
9
+ .anim:before {
10
+ -webkit-transition: all .2s cubic-bezier(0, 0, .2, 1) 0s;
11
+ -moz-transition: all .2s cubic-bezier(0, 0, .2, 1) 0s;
12
+ -o-transition: all .2s cubic-bezier(0, 0, .2, 1) 0s;
13
+ transition: all .2s cubic-bezier(0, 0, .2, 1) 0s;
14
+
15
+ -webkit-transform: translate3d(0, 0, 0); /* 1 */
16
+ transform: translate3d(0, 0, 0);
17
+ -webkit-perspective: 1000;
18
+ perspective: 1000;
19
+ }
20
+
package/css/base.css CHANGED
@@ -17,7 +17,6 @@
17
17
 
18
18
  *, *:before, *:after {
19
19
  color: inherit;
20
- text-decoration: inherit;
21
20
  -webkit-box-sizing: inherit; /* 3 */
22
21
  -moz-box-sizing: inherit;
23
22
  box-sizing: inherit;
@@ -192,25 +191,6 @@ button,
192
191
  white-space: nowrap;
193
192
  }
194
193
 
195
- /**
196
- * 1. Trigger GPU acceleration.
197
- * Remove first flicker on iphone.
198
- */
199
-
200
- .anim,
201
- .anim:after,
202
- .anim:before {
203
- -webkit-transition: all .25s cubic-bezier(0, 0, .2, 1) 0s;
204
- -moz-transition: all .25s cubic-bezier(0, 0, .2, 1) 0s;
205
- -o-transition: all .25s cubic-bezier(0, 0, .2, 1) 0s;
206
- transition: all .25s cubic-bezier(0, 0, .2, 1) 0s;
207
-
208
- -webkit-transform: translate3d(0, 0, 0); /* 1 */
209
- transform: translate3d(0, 0, 0);
210
- -webkit-perspective: 1000;
211
- perspective: 1000;
212
- }
213
-
214
194
  .sm .sm-left,
215
195
  .md .md-left,
216
196
  .lg .lg-left,
package/css/grid-1of.css CHANGED
@@ -23,3 +23,69 @@
23
23
  .h4of5, .md .md-h4of5, .lg .md-h4of5, .lg .lg-h4of5 { height: 80%; }
24
24
  /**/
25
25
 
26
+
27
+ .w1-10 { width: 10%; }
28
+ .w1-9 { width: 11.11%; }
29
+ .w1-8 { width: 12.5%; }
30
+ .w1-7 { width: 14.29%; }
31
+ .w1-6 { width: 16.67%; }
32
+ .w1-5 { width: 20%; }
33
+ .w2-9 { width: 22.22%; }
34
+ .w1-4 { width: 25%; }
35
+ .w2-7 { width: 28.57%; }
36
+ .w1-3 { width: 33.33%; }
37
+ .w3-8 { width: 37.5%; }
38
+ .w2-5 { width: 40%; }
39
+ .w3-7 { width: 42.86%; }
40
+ .w4-9 { width: 44.44%; }
41
+ .w1-2 { width: 50%; }
42
+ .w5-9 { width: 55.56%; }
43
+ .w3-5 { width: 60%; }
44
+ .w5-8 { width: 62.5%; }
45
+ .w2-3 { width: 66.67%; }
46
+ .w3-4 { width: 75%; }
47
+ .w7-9 { width: 77.78%; }
48
+ .w4-5 { width: 80%; }
49
+ .w5-6 { width: 83.33%; }
50
+ .w6-7 { width: 85.71%; }
51
+ .w7-8 { width: 87.5%; }
52
+ .w8-9 { width: 88.89%; }
53
+ .w9-10 { width: 90%; }
54
+ .w1-1 { width: 100%; }
55
+
56
+
57
+ /*
58
+ .w90, .md .md-w90, .lg .md-w90, .lg.lg .lg-w90 { width: 90%; }
59
+ .w80, .md .md-w80, .lg .md-w80, .lg.lg .lg-w80 { width: 80%; }
60
+ .w70, .md .md-w70, .lg .md-w70, .lg.lg .lg-w70 { width: 70%; }
61
+ .w60, .md .md-w60, .lg .md-w60, .lg.lg .lg-w60 { width: 60%; }
62
+ .w40, .md .md-w40, .lg .md-w40, .lg.lg .lg-w40 { width: 40%; }
63
+ .w30, .md .md-w30, .lg .md-w30, .lg.lg .lg-w30 { width: 40%; }
64
+ .w20, .md .md-w20, .lg .md-w20, .lg.lg .lg-w20 { width: 20%; }
65
+ .w10, .md .md-w10, .lg .md-w10, .lg.lg .lg-w10 { width: 10%; }
66
+
67
+ .h80, .md .md-h80, .lg .md-h80, .lg.lg .lg-h80 { height: 80%; }
68
+ .h60, .md .md-h60, .lg .md-h60, .lg.lg .lg-h60 { height: 60%; }
69
+ .h40, .md .md-h40, .lg .md-h40, .lg.lg .lg-h40 { height: 40%; }
70
+ .h20, .md .md-h20, .lg .md-h20, .lg.lg .lg-h20 { height: 20%; }
71
+
72
+ .l80, .md .md-l80, .lg .md-l80, .lg.lg .lg-l80 { left: 80%; }
73
+ .l60, .md .md-l60, .lg .md-l60, .lg.lg .lg-l60 { left: 60%; }
74
+ .l40, .md .md-l40, .lg .md-l40, .lg.lg .lg-l40 { left: 40%; }
75
+ .l20, .md .md-l20, .lg .md-l20, .lg.lg .lg-l20 { left: 20%; }
76
+
77
+ .col:first-child:nth-last-child(2), .col:first-child:nth-last-child(2) ~ .col {
78
+ width: 50%;
79
+ }
80
+ .col:first-child:nth-last-child(3), .col:first-child:nth-last-child(3) ~ .col {
81
+ width: 33.333%;
82
+ }
83
+ .col:first-child:nth-last-child(4), .col:first-child:nth-last-child(4) ~ .col {
84
+ width: 25%;
85
+ }
86
+ .col:first-child:nth-last-child(5), .col:first-child:nth-last-child(5) ~ .col {
87
+ width: 20%;
88
+ }
89
+ */
90
+
91
+
package/css/grid.css CHANGED
@@ -27,46 +27,43 @@ Expects box-sizing: border-box;
27
27
  }
28
28
 
29
29
  .col,
30
- .w12, .md .md-w12, .lg .md-w12, .lg .lg-w12 { width: 100%; }
31
- .w11, .md .md-w11, .lg .md-w11, .lg .lg-w11 { width: 91.6667%; }
32
- .w10, .md .md-w10, .lg .md-w10, .lg .lg-w10 { width: 83.3333%; }
33
- .w9 , .md .md-w9 , .lg .md-w9 , .lg .lg-w9 { width: 75%; }
34
- .w8 , .md .md-w8 , .lg .md-w8 , .lg .lg-w8 { width: 66.6667%; }
35
- .w7 , .md .md-w7 , .lg .md-w7 , .lg .lg-w7 { width: 58.3333%; }
36
- .w6 , .md .md-w6 , .lg .md-w6 , .lg .lg-w6 { width: 50%; }
37
- .w5 , .md .md-w5 , .lg .md-w5 , .lg .lg-w5 { width: 41.6667%; }
38
- .w4 , .md .md-w4 , .lg .md-w4 , .lg .lg-w4 { width: 33.3333%; }
39
- .w3 , .md .md-w3 , .lg .md-w3 , .lg .lg-w3 { width: 25%; }
40
- .w2 , .md .md-w2 , .lg .md-w2 , .lg .lg-w2 { width: 16.6667%; }
41
- .w1 , .md .md-w1 , .lg .md-w1 , .lg .lg-w1 { width: 8.3333%; }
30
+ .w12, .md .md-w12, .lg .md-w12, .lg.lg .lg-w12 { width: 100%; }
31
+ .w11, .md .md-w11, .lg .md-w11, .lg.lg .lg-w11 { width: 91.667%; }
32
+ .w10, .md .md-w10, .lg .md-w10, .lg.lg .lg-w10 { width: 83.333%; }
33
+ .w9 , .md .md-w9 , .lg .md-w9 , .lg.lg .lg-w9 { width: 75%; }
34
+ .w8 , .md .md-w8 , .lg .md-w8 , .lg.lg .lg-w8 { width: 66.667%; }
35
+ .w7 , .md .md-w7 , .lg .md-w7 , .lg.lg .lg-w7 { width: 58.333%; }
36
+ .w6 , .md .md-w6 , .lg .md-w6 , .lg.lg .lg-w6 { width: 50%; }
37
+ .w5 , .md .md-w5 , .lg .md-w5 , .lg.lg .lg-w5 { width: 41.667%; }
38
+ .w4 , .md .md-w4 , .lg .md-w4 , .lg.lg .lg-w4 { width: 33.333%; }
39
+ .w3 , .md .md-w3 , .lg .md-w3 , .lg.lg .lg-w3 { width: 25%; }
40
+ .w2 , .md .md-w2 , .lg .md-w2 , .lg.lg .lg-w2 { width: 16.667%; }
41
+ .w1 , .md .md-w1 , .lg .md-w1 , .lg.lg .lg-w1 { width: 8.333%; }
42
42
 
43
- .h12, .md .md-h12, .lg .md-h12, .lg .lg-h12 { height: 100%; }
44
- .h11, .md .md-h11, .lg .md-h11, .lg .lg-h11 { height: 91.6667%; }
45
- .h10, .md .md-h10, .lg .md-h10, .lg .lg-h10 { height: 83.3333%; }
46
- .h9 , .md .md-h9 , .lg .md-h9 , .lg .lg-h9 { height: 75%; }
47
- .h8 , .md .md-h8 , .lg .md-h8 , .lg .lg-h8 { height: 66.6667%; }
48
- .h7 , .md .md-h7 , .lg .md-h7 , .lg .lg-h7 { height: 58.3333%; }
49
- .h6 , .md .md-h6 , .lg .md-h6 , .lg .lg-h6 { height: 50%; }
50
- .h5 , .md .md-h5 , .lg .md-h5 , .lg .lg-h5 { height: 41.6667%; }
51
- .h4 , .md .md-h4 , .lg .md-h4 , .lg .lg-h4 { height: 33.3333%; }
52
- .h3 , .md .md-h3 , .lg .md-h3 , .lg .lg-h3 { height: 25%; }
53
- .h2 , .md .md-h2 , .lg .md-h2 , .lg .lg-h2 { height: 16.6667%; }
54
- .h1 , .md .md-h1 , .lg .md-h1 , .lg .lg-h1 { height: 8.3333%; }
43
+ .h12, .md .md-h12, .lg .md-h12, .lg.lg .lg-h12 { height: 100%; }
44
+ .h11, .md .md-h11, .lg .md-h11, .lg.lg .lg-h11 { height: 91.667%; }
45
+ .h10, .md .md-h10, .lg .md-h10, .lg.lg .lg-h10 { height: 83.333%; }
46
+ .h9 , .md .md-h9 , .lg .md-h9 , .lg.lg .lg-h9 { height: 75%; }
47
+ .h8 , .md .md-h8 , .lg .md-h8 , .lg.lg .lg-h8 { height: 66.667%; }
48
+ .h7 , .md .md-h7 , .lg .md-h7 , .lg.lg .lg-h7 { height: 58.333%; }
49
+ .h6 , .md .md-h6 , .lg .md-h6 , .lg.lg .lg-h6 { height: 50%; }
50
+ .h5 , .md .md-h5 , .lg .md-h5 , .lg.lg .lg-h5 { height: 41.667%; }
51
+ .h4 , .md .md-h4 , .lg .md-h4 , .lg.lg .lg-h4 { height: 33.333%; }
52
+ .h3 , .md .md-h3 , .lg .md-h3 , .lg.lg .lg-h3 { height: 25%; }
53
+ .h2 , .md .md-h2 , .lg .md-h2 , .lg.lg .lg-h2 { height: 16.667%; }
54
+ .h1 , .md .md-h1 , .lg .md-h1 , .lg.lg .lg-h1 { height: 8.333%; }
55
55
 
56
-
57
- /*
58
- .col:first-child:nth-last-child(2), .col:first-child:nth-last-child(2) ~ .col {
59
- width: 50%;
60
- }
61
- .col:first-child:nth-last-child(3), .col:first-child:nth-last-child(3) ~ .col {
62
- width: 33.333%;
63
- }
64
- .col:first-child:nth-last-child(4), .col:first-child:nth-last-child(4) ~ .col {
65
- width: 25%;
66
- }
67
- .col:first-child:nth-last-child(5), .col:first-child:nth-last-child(5) ~ .col {
68
- width: 20%;
69
- }
70
- */
56
+ .l12, .md .md-l12, .lg .md-l12, .lg.lg .lg-l12 { left: 100%; }
57
+ .l11, .md .md-l11, .lg .md-l11, .lg.lg .lg-l11 { left: 91.667%; }
58
+ .l10, .md .md-l10, .lg .md-l10, .lg.lg .lg-l10 { left: 83.333%; }
59
+ .l9, .md .md-l9, .lg .md-l9, .lg.lg .lg-l9 { left: 75%; }
60
+ .l8, .md .md-l8, .lg .md-l8, .lg.lg .lg-l8 { left: 66.667%; }
61
+ .l7, .md .md-l7, .lg .md-l7, .lg.lg .lg-l7 { left: 58.333%; }
62
+ .l6, .md .md-l6, .lg .md-l6, .lg.lg .lg-l6 { left: 50%; }
63
+ .l5, .md .md-l5, .lg .md-l5, .lg.lg .lg-l5 { left: 41.667%; }
64
+ .l4, .md .md-l4, .lg .md-l4, .lg.lg .lg-l4 { left: 33.333%; }
65
+ .l3, .md .md-l3, .lg .md-l3, .lg.lg .lg-l3 { left: 25%; }
66
+ .l2, .md .md-l2, .lg .md-l2, .lg.lg .lg-l2 { left: 16.667%; }
67
+ .l1, .md .md-l1, .lg .md-l1, .lg.lg .lg-l1 { left: 8.333%; }
71
68
 
72
69
 
package/css/spacing-4.css CHANGED
@@ -1,37 +1,37 @@
1
1
 
2
- .p0, .p00, .p01, .p02, .p03, .p04 { padding-top: 0; padding-bottom: 0; }
3
- .p1, .p10, .p11, .p12, .p13, .p14 { padding-top: 4px; padding-bottom: 4px; }
4
- .p2, .p20, .p21, .p22, .p23, .p24 { padding-top: 8px; padding-bottom: 8px; }
5
- .p3, .p30, .p31, .p32, .p33, .p34 { padding-top: 12px; padding-bottom: 12px; }
6
- .p4, .p40, .p41, .p42, .p43, .p44 { padding-top: 16px; padding-bottom: 16px; }
2
+ .p0, .p01, .p02, .p03, .p04 { padding-top: 0; padding-bottom: 0; }
3
+ .p10, .p1, .p12, .p13, .p14 { padding-top: 4px; padding-bottom: 4px; }
4
+ .p20, .p21, .p2, .p23, .p24 { padding-top: 8px; padding-bottom: 8px; }
5
+ .p30, .p31, .p32, .p3, .p34 { padding-top: 12px; padding-bottom: 12px; }
6
+ .p40, .p41, .p42, .p43, .p4 { padding-top: 16px; padding-bottom: 16px; }
7
7
 
8
- .p0, .p00, .p10, .p20, .p30, .p40 { padding-left: 0; padding-right: 0; }
9
- .p1, .p01, .p11, .p21, .p31, .p41 { padding-left: 4px; padding-right: 4px; }
10
- .p2, .p02, .p12, .p22, .p32, .p42 { padding-left: 8px; padding-right: 8px; }
11
- .p3, .p03, .p13, .p23, .p33, .p43 { padding-left: 12px; padding-right: 12px; }
12
- .p4, .p04, .p14, .p24, .p34, .p44 { padding-left: 16px; padding-right: 16px; }
8
+ .p0, .p10, .p20, .p30, .p40 { padding-left: 0; padding-right: 0; }
9
+ .p01, .p1, .p21, .p31, .p41 { padding-left: 4px; padding-right: 4px; }
10
+ .p02, .p12, .p2, .p32, .p42 { padding-left: 8px; padding-right: 8px; }
11
+ .p03, .p13, .p23, .p3, .p43 { padding-left: 12px; padding-right: 12px; }
12
+ .p04, .p14, .p24, .p34, .p4 { padding-left: 16px; padding-right: 16px; }
13
13
 
14
- .m0, .m00, .m01, .m02, .m03, .m04 { margin-top: 0; margin-bottom: 0; }
15
- .m1, .m10, .m11, .m12, .m13, .m14 { margin-top: 4px; margin-bottom: 4px; }
16
- .m2, .m20, .m21, .m22, .m23, .m24 { margin-top: 8px; margin-bottom: 8px; }
17
- .m3, .m30, .m31, .m32, .m33, .m34 { margin-top: 12px; margin-bottom: 12px; }
18
- .m4, .m40, .m41, .m42, .m43, .m44 { margin-top: 16px; margin-bottom: 16px; }
14
+ .m0, .m01, .m02, .m03, .m04 { margin-top: 0; margin-bottom: 0; }
15
+ .m10, .m1, .m12, .m13, .m14 { margin-top: 4px; margin-bottom: 4px; }
16
+ .m20, .m21, .m2, .m23, .m24 { margin-top: 8px; margin-bottom: 8px; }
17
+ .m30, .m31, .m32, .m3, .m34 { margin-top: 12px; margin-bottom: 12px; }
18
+ .m40, .m41, .m42, .m43, .m4 { margin-top: 16px; margin-bottom: 16px; }
19
19
 
20
- .m0, .m00, .m10, .m20, .m30, .m40 { margin-left: 0; margin-right: 0; }
21
- .m1, .m01, .m11, .m21, .m31, .m41 { margin-left: 4px; margin-right: 4px; }
22
- .m2, .m02, .m12, .m22, .m32, .m42 { margin-left: 8px; margin-right: 8px; }
23
- .m3, .m03, .m13, .m23, .m33, .m43 { margin-left: 12px; margin-right: 12px; }
24
- .m4, .m04, .m14, .m24, .m34, .m44 { margin-left: 16px; margin-right: 16px; }
20
+ .m0, .m10, .m20, .m30, .m40 { margin-left: 0; margin-right: 0; }
21
+ .m01, .m1, .m21, .m31, .m41 { margin-left: 4px; margin-right: 4px; }
22
+ .m02, .m12, .m2, .m32, .m42 { margin-left: 8px; margin-right: 8px; }
23
+ .m03, .m13, .m23, .m3, .m43 { margin-left: 12px; margin-right: 12px; }
24
+ .m04, .m14, .m24, .m34, .m4 { margin-left: 16px; margin-right: 16px; }
25
25
 
26
26
  .grid.p1, .grid.p1 > .row > .col, .grid.p1 > .col { padding: 2px; }
27
27
  .grid.p2, .grid.p2 > .row > .col, .grid.p2 > .col { padding: 4px; }
28
28
  .grid.p3, .grid.p3 > .row > .col, .grid.p3 > .col { padding: 6px; }
29
29
  .grid.p4, .grid.p4 > .row > .col, .grid.p4 > .col { padding: 8px; }
30
- .grid.p1 > .grid, .grid.p2 > .grid, .grid.p3 > .grid, .grid.p4 > .grid { padding: 0; }
30
+ .grid > .grid { padding: 0; }
31
31
 
32
32
  .grid.b1, .grid.b1 > .row > .col, .grid.b1 > .col { border: 2px solid transparent; }
33
33
  .grid.b2, .grid.b2 > .row > .col, .grid.b2 > .col { border: 4px solid transparent; }
34
34
  .grid.b3, .grid.b3 > .row > .col, .grid.b3 > .col { border: 6px solid transparent; }
35
35
  .grid.b4, .grid.b4 > .row > .col, .grid.b4 > .col { border: 8px solid transparent; }
36
- .grid.b1 > .grid, .grid.b2 > .grid, .grid.b3 > .grid, .grid.b4 > .grid { border: none; }
36
+ .grid > .grid { border: none; }
37
37
 
package/el/Pie.tpl CHANGED
@@ -70,7 +70,7 @@
70
70
  %svg Chart-line
71
71
  g.Chart-line
72
72
  ;svgToLast
73
- path ;svgLine: points, {radius: radius}
73
+ path ;svgLine points, {radius: radius}
74
74
 
75
75
  %svg Chart-axes
76
76
  g.labels.x-labels
package/el/Slider.tpl CHANGED
@@ -206,7 +206,7 @@
206
206
  var diff = vert ? offset - e.pageY : e.pageX - offset
207
207
  diff = (diff > maxPx ? maxPx : (diff < minPx ? minPx : diff))
208
208
  set((diff / px) + min, e, diff)
209
- return Event.stop(e)
209
+ return El.stop(e)
210
210
  }
211
211
  function stop(e) {
212
212
  if (drag) {
@@ -263,7 +263,7 @@
263
263
  %el Toggle
264
264
  label.Toggle.reset[tabindex=0]
265
265
  input[type=checkbox].hide
266
- ;readonly: row && !row.write
267
- ;checked: model && (row && row.opts ? row.opts === model.get(row.path) : !!model.get(row.path))
266
+ ;readonly! row && !row.write
267
+ ;checked! model && (row && row.opts ? row.opts === model.get(row.path) : !!model.get(row.path))
268
268
  .Toggle-knob.anim
269
269
 
package/el/dialog.ui CHANGED
@@ -93,8 +93,8 @@
93
93
  $$(".js-btn", el).on("click", resolve)
94
94
  $ui.one("show", resolve)
95
95
  if (scope.bgClose) El.on(el, "click", resolve)
96
- El.on(el, "wheel", Event.stop)
97
- El.on(el.lastChild, "click", Event.stop)
96
+ El.on(el, "wheel", El.stop)
97
+ El.on(el.lastChild, "click", El.stop)
98
98
  if (scope.vibrate && navigator.vibrate) {
99
99
  vibrate = navigator.vibrate(scope.vibrate)
100
100
  }
@@ -138,7 +138,7 @@
138
138
  %el Dialog-numpad
139
139
  .row.js-numpad
140
140
  @click ".btn", function(){}
141
- ;each: num in [1,2,3,4,5,6,7,8,9,"CLEAR",0]
141
+ ;each! "num",[1,2,3,4,5,6,7,8,9,"CLEAR",0]
142
142
  .col.w4>.btn {num}
143
143
 
144
144
  %js
@@ -149,21 +149,21 @@
149
149
 
150
150
  %el Dialog
151
151
  .Dialog.grid.p2.anim
152
- .col.ts3 ;txt!_(title, map)
153
- .col.js-body ;md!_(body, map)
152
+ .col.ts3 ;txt! _(title, map)
153
+ .col.js-body ;md! _(body, map)
154
154
  .col
155
- .group ;each: action in actions
155
+ .group ;each! action in actions
156
156
  .btn.js-btn
157
- ;txt!_(action.title)
158
- ;class!"w" + (12/actions.length)
159
- ;nop: this.focus()
160
- ;set: "data-action", action.action
161
- ;class!"is-" + action.action, action.action
157
+ ;txt! _(action.title)
158
+ ;class! "w" + (12/actions.length)
159
+ ;nop! this.focus()
160
+ ;set! "data-action", action.action
161
+ ;class! "is-" + action.action, action.action
162
162
 
163
163
  %el Modal
164
164
  .Modal.max.fix.anim
165
165
  .Modal-bg.max.abs
166
166
  .Modal-content.Modal--blur.grid.p2.anim
167
- ;cls!"Modal--blur",!1,1
167
+ ;cls! "Modal--blur",!1,1
168
168
  %slot
169
169
 
package/el/form.ui CHANGED
@@ -160,7 +160,7 @@ label.row
160
160
  %child
161
161
  .input__hint
162
162
  = _(description)
163
- ;if: description
163
+ ;if! description
164
164
 
165
165
  %el Form-subheader
166
166
  .col
@@ -176,14 +176,14 @@ Form-row
176
176
  input.field
177
177
 
178
178
  %el Form-ro
179
- Form-row>span ;txt: value
179
+ Form-row>span ;txt! value
180
180
 
181
181
  %el Form-hidden
182
182
  div>input.field[type=hidden]
183
183
 
184
184
  %el Form-boolean
185
185
  Form-row
186
- input.field[type=checkbox] ;value: value
186
+ input.field[type=checkbox] ;value! value
187
187
 
188
188
  %el Form-boolean-ro
189
189
  Form-row>span
@@ -206,9 +206,9 @@ Form-ro
206
206
 
207
207
  %el Form-enum
208
208
  Form-row
209
- select.field ;each:val in $d["enum"]
209
+ select.field ;each! "val", $d["enum"]
210
210
  option
211
- ;val:: val
211
+ ;val! val
212
212
  = _("" + val)
213
213
 
214
214
  %el Form-enum-ro
@@ -217,10 +217,10 @@ Form-ro
217
217
  %el Form-list
218
218
  Form-row
219
219
  select.field
220
- ;list: api(resourceCollection.format(params, $d)), required ? 0 : [""], value
220
+ ;list api(resourceCollection.format(params, $d)), required ? 0 : [""], value
221
221
  option
222
- ;val:: item.id
223
- ;txt:: _(item.name)
222
+ ;val! item.id
223
+ ;txt! _(item.name)
224
224
 
225
225
  %el Form-list-ro
226
226
  Form-row>span
@@ -235,8 +235,8 @@ Form-row>span
235
235
  = _(description)
236
236
  .js-items.cf
237
237
  a.btn.right
238
- ;if: !$d.noAdd
239
- ;txt: _($d.name + ".Add")
238
+ ;if! !$d.noAdd
239
+ ;txt! _($d.name + ".Add")
240
240
  @click: $d.add
241
241
 
242
242
  %el Form-array-item
@@ -246,7 +246,7 @@ Form-row>span
246
246
  ;set "data-tooltip", _("Delete")
247
247
  @click $d.del
248
248
  b
249
- ;if: title
250
- ;txt: title
249
+ ;if! title
250
+ ;txt! title
251
251
  .grid.b2.js-item
252
252
 
package/el/material.tpl CHANGED
@@ -197,6 +197,7 @@
197
197
  !function($ui) {
198
198
  var menuTarget, menuEl, tipTarget, tipEl, tick, wait
199
199
  , ripple = El(".waves-ripple")
200
+ , html = document.documentElement
200
201
  El.near = near
201
202
  function near(source, target, x, y, margin) {
202
203
  var rect = target.getBoundingClientRect()
@@ -242,7 +243,7 @@
242
243
  left: (left < 0 ? 0 : left) + "px"
243
244
  })
244
245
  }
245
- El.on(document.body, "mouseover", onOver)
246
+ El.on(html, "mouseover", onOver)
246
247
  El.on(window, "focusin", onOver)
247
248
  $ui.on("show", closeTooltip)
248
249
  function onOver(e) {
@@ -301,7 +302,7 @@
301
302
  $ui.on("ping", closeMenu)
302
303
  $ui.on("closeMenu", closeMenu)
303
304
  $ui.on("showMenu", function(e, target, menu, x, y, margin) {
304
- Event.stop(e)
305
+ El.stop(e)
305
306
  var close = menuEl && menuTarget == target
306
307
  closeMenu()
307
308
  if (close) return
@@ -322,8 +323,8 @@
322
323
  })
323
324
  }
324
325
  })
325
- El.on(document.body, "click", closeMenu)
326
- El.on(document.body, "pointerdown", pointerdown)
326
+ El.on(html, "click", closeMenu)
327
+ El.on(html, "pointerdown", pointerdown)
327
328
  function pointerdown(e) {
328
329
  var target = e.target
329
330
  if (!El.hasClass(target, "waves") || target.disabled) return
@@ -346,7 +347,7 @@
346
347
  end()
347
348
  wait = 1
348
349
  tick = setTimeout(end, 800)
349
- El.one(document.body, "pointerup", end)
350
+ El.one(html, "pointerup", end)
350
351
  ripple.offsetTop // force repaint
351
352
  El.cls(ripple, "waves-ripple--play")
352
353
  }
package/load.js CHANGED
@@ -19,14 +19,14 @@
19
19
 
20
20
 
21
21
  !function(window, Function) {
22
- xhr._s = new Date()
23
- var rewrite = {
22
+ var initTime = xhr._t = +new Date()
23
+ , rewrite = {
24
24
  //!{loadRewrite}
25
25
  }
26
26
  // Move setTimeout from window.prototype to window object for future patching in IE9.
27
27
  , setTimeout_ = window.setTimeout = setTimeout
28
28
  /*** debug ***/
29
- // Expose xhr._c for tests.
29
+ // Expose xhr._c for testing.
30
30
  , loaded = xhr._c = {}
31
31
  /*/
32
32
  , loaded = {}
@@ -56,38 +56,33 @@
56
56
  , xhrs = []
57
57
  /**/
58
58
 
59
+ , unsentLog = xhr._l = []
59
60
  /*** onerror ***/
60
61
  , lastError
61
- , unsentErrors = xhr._e = []
62
62
  , onerror = window.onerror = function(message, file, line, col, error) {
63
63
  // Do not send multiple copies of the same error.
64
64
  // file = document.currentScript.src || import.meta.url
65
65
  if (lastError !== (lastError =
66
66
  [ file
67
67
  , line
68
- , col || (window.event || unsentErrors).errorCharacter || "?"
68
+ , col || (window.event || unsentLog).errorCharacter || "?"
69
69
  , message
70
70
  ].join(":")
71
- ) && 2 > unsentErrors.push(
72
- [ +new Date()
73
- , lastError
74
- , error && (error.stack || error.stacktrace) || "-"
75
- , "" + location
76
- ]
77
- )) setTimeout_(sendErrors, 307)
78
- }
79
-
80
- function sendErrors() {
81
- if (xhr.err) {
82
- xhr.err(unsentErrors)
83
- } else {
84
- setTimeout_(sendErrors, 1307)
85
- }
71
+ )) log("e", lastError, (error && (error.stack || error.stacktrace) || "-") + "\n" + location)
86
72
  }
87
73
  /*/
88
74
  , onerror = nop
89
75
  /**/
90
76
 
77
+ xhr.log = log
78
+ function log(type, msg, extra) {
79
+ if (unsentLog.push([ new Date() - initTime, type, msg, extra ]) < 2) sendLog()
80
+ }
81
+
82
+ function sendLog() {
83
+ setTimeout_(xhr.sendLog || sendLog, 1307)
84
+ }
85
+
91
86
  // next === true is for sync call
92
87
 
93
88
  window.xhr = xhr
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litejs/ui",
3
- "version": "24.7.0",
3
+ "version": "25.1.0",
4
4
  "description": "UI engine for LiteJS full-stack framework",
5
5
  "license": "MIT",
6
6
  "author": "Lauri Rooden <lauri@rooden.ee>",
@@ -12,21 +12,18 @@
12
12
  ],
13
13
  "homepage": "https://litejs.com",
14
14
  "repository": "github:litejs/ui",
15
- "bugs": "https://github.com/litejs/dev/issues",
16
15
  "main": "ui.js",
17
16
  "files": [
18
17
  "*.js",
19
18
  "binding",
20
19
  "css",
21
- "el",
22
- "shim"
20
+ "el"
23
21
  ],
24
22
  "scripts": {
25
- "lint": "jshint --config=.github/jshint.json *.js",
26
- "test": "lj test test/index.js --tz='Europe/Tallinn' --brief --sources=load.js,require.js,index.js"
23
+ "test": "lj t"
27
24
  },
28
25
  "devDependencies": {
29
- "@litejs/cli": "24.6.2",
30
- "@litejs/dom": "24.7.0"
26
+ "@litejs/cli": "25.1.1",
27
+ "@litejs/dom": "25.1.0"
31
28
  }
32
29
  }
package/shim.js CHANGED
@@ -377,6 +377,7 @@
377
377
 
378
378
  b += "if(a.call(b,t[i],i,t))"
379
379
  patch("filter", b + "o.push(t[i])" + c)
380
+ patch("find", b + "return t[i]")
380
381
  patch("some", b + "return!0;return!1")
381
382
 
382
383
  patch("flat", "return a<1?S.call(t):(b=t.concat.apply([],t))&&a>1&&b.some(X)?b.flat(a-1):b", 0, isArray)