purgetss 6.2.10 → 6.2.12
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/dist/glossary/compoundClasses/borderRadius-alternative.md +1 -1
- package/dist/glossary/compoundClasses/rotate-negative-values.md +5 -0
- package/dist/glossary/compoundClasses/zoom-in-out.md +2 -0
- package/dist/glossary/configurableProperties/maxZoomScale.md +1 -0
- package/dist/glossary/configurableProperties/minZoomScale.md +1 -0
- package/dist/glossary/configurableProperties/rotate.md +5 -0
- package/dist/glossary/configurableProperties/scale.md +1 -0
- package/dist/glossary/configurableProperties/scaleX.md +1 -0
- package/dist/glossary/configurableProperties/scaleY.md +1 -0
- package/dist/glossary/configurableProperties/scalesPageToFit.md +1 -0
- package/dist/glossary/configurableProperties/zoomScale.md +1 -0
- package/dist/purgetss.ui.js +60 -52
- package/dist/tailwind.tss +21 -2
- package/experimental/completions2.js +4 -4
- package/index.js +25 -6
- package/lib/completions/titanium/completions-v3.json +1 -1
- package/lib/helpers.js +7 -1
- package/lib/templates/tailwind/template.tss +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
```scss
|
|
2
2
|
// Property(ies): borderRadius ( with Extra Styles )
|
|
3
|
-
// Component(s): Ti.UI.Android.CardView, Ti.UI.
|
|
3
|
+
// Component(s): Ti.UI.View, Ti.Media.VideoPlayer, Ti.UI.Android.CardView, Ti.UI.Android.DrawerLayout, Ti.UI.Android.SearchView, Ti.UI.Button, Ti.UI.ButtonBar, Ti.UI.DashboardView, Ti.UI.ImageView, Ti.UI.Label, Ti.UI.ListView, Ti.UI.MaskedImage, Ti.UI.NavigationWindow, Ti.UI.OptionBar, Ti.UI.Picker, Ti.UI.PickerRow, Ti.UI.ProgressBar, Ti.UI.ScrollView, Ti.UI.ScrollableView, Ti.UI.SearchBar, Ti.UI.Slider, Ti.UI.Switch, Ti.UI.TabbedBar, Ti.UI.TableView, Ti.UI.TableViewRow, Ti.UI.TextArea, Ti.UI.TextField, Ti.UI.Toolbar, Ti.UI.WebView, Ti.UI.Window, Ti.UI.iOS.BlurView, Ti.UI.iOS.CoverFlowView, Ti.UI.iOS.LivePhotoView, Ti.UI.iOS.SplitWindow, Ti.UI.iOS.Stepper
|
|
4
4
|
'.rounded-1': { borderRadius: 2 }
|
|
5
5
|
'.rounded-2': { borderRadius: 4 }
|
|
6
6
|
'.rounded-3': { borderRadius: 6 }
|
|
@@ -9,5 +9,10 @@
|
|
|
9
9
|
'.-rotate-12': { rotate: -12 }
|
|
10
10
|
'.-rotate-45': { rotate: -45 }
|
|
11
11
|
'.-rotate-90': { rotate: -90 }
|
|
12
|
+
'.-rotate-135': { rotate: -135 }
|
|
12
13
|
'.-rotate-180': { rotate: -180 }
|
|
14
|
+
'.-rotate-225': { rotate: -225 }
|
|
15
|
+
'.-rotate-270': { rotate: -270 }
|
|
16
|
+
'.-rotate-315': { rotate: -315 }
|
|
17
|
+
'.-rotate-360': { rotate: -360 }
|
|
13
18
|
```
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
'.zoom-in-110': { animationProperties: { open: { scale: 1.1 }, complete: { scale: 1 } } }
|
|
16
16
|
'.zoom-in-125': { animationProperties: { open: { scale: 1.25 }, complete: { scale: 1 } } }
|
|
17
17
|
'.zoom-in-150': { animationProperties: { open: { scale: 1.5 }, complete: { scale: 1 } } }
|
|
18
|
+
'.zoom-in-200': { animationProperties: { open: { scale: 2 }, complete: { scale: 1 } } }
|
|
18
19
|
'.zoom-out-0': { animationProperties: { close: { scale: 0 }, complete: { scale: 1 } } }
|
|
19
20
|
'.zoom-out-1': { animationProperties: { close: { scale: 0.01 }, complete: { scale: 1 } } }
|
|
20
21
|
'.zoom-out-5': { animationProperties: { close: { scale: 0.05 }, complete: { scale: 1 } } }
|
|
@@ -29,4 +30,5 @@
|
|
|
29
30
|
'.zoom-out-110': { animationProperties: { close: { scale: 1.1 }, complete: { scale: 1 } } }
|
|
30
31
|
'.zoom-out-125': { animationProperties: { close: { scale: 1.25 }, complete: { scale: 1 } } }
|
|
31
32
|
'.zoom-out-150': { animationProperties: { close: { scale: 1.5 }, complete: { scale: 1 } } }
|
|
33
|
+
'.zoom-out-200': { animationProperties: { close: { scale: 2 }, complete: { scale: 1 } } }
|
|
32
34
|
```
|
|
@@ -9,5 +9,10 @@
|
|
|
9
9
|
'.rotate-12': { rotate: 12 }
|
|
10
10
|
'.rotate-45': { rotate: 45 }
|
|
11
11
|
'.rotate-90': { rotate: 90 }
|
|
12
|
+
'.rotate-135': { rotate: 135 }
|
|
12
13
|
'.rotate-180': { rotate: 180 }
|
|
14
|
+
'.rotate-225': { rotate: 225 }
|
|
15
|
+
'.rotate-270': { rotate: 270 }
|
|
16
|
+
'.rotate-315': { rotate: 315 }
|
|
17
|
+
'.rotate-360': { rotate: 360 }
|
|
13
18
|
```
|
package/dist/purgetss.ui.js
CHANGED
|
@@ -37,19 +37,22 @@ function Animation(args) {
|
|
|
37
37
|
|
|
38
38
|
// TODO: Create a library of useful animations!!
|
|
39
39
|
animationView.play = (_views, _cb) => {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
if (param.debug) console.log(''); // Just for debug
|
|
41
|
+
logger('`play` method called on: ' + param.id);
|
|
42
|
+
(param.playing) ? logger(`$.${param.view.id}: is playing...`) : mainPlayApplyFn(_views, _cb);
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
animationView.toggle = animationView.play;
|
|
45
46
|
|
|
46
47
|
animationView.apply = (_views, _cb) => {
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
if (param.debug) console.log(''); // Just for debug
|
|
49
|
+
logger('`apply` method called on: ' + param.id);
|
|
50
|
+
mainPlayApplyFn(_views, _cb, 'apply')
|
|
49
51
|
};
|
|
50
52
|
|
|
51
53
|
animationView.draggable = (_views) => {
|
|
52
|
-
|
|
54
|
+
if (param.debug) console.log(''); // Just for debug
|
|
55
|
+
logger('`draggable` method called on: ' + param.id);
|
|
53
56
|
if (Array.isArray(_views)) {
|
|
54
57
|
_views.forEach((_view, key) => {
|
|
55
58
|
_view.zIndex = key;
|
|
@@ -61,12 +64,12 @@ function Animation(args) {
|
|
|
61
64
|
};
|
|
62
65
|
|
|
63
66
|
//! Helper Functions
|
|
64
|
-
function
|
|
65
|
-
logger(' -> `
|
|
67
|
+
function mainPlayApplyFn(_views, _cb, action = 'play') {
|
|
68
|
+
logger(' -> `mainPlayApplyFn` helper');
|
|
66
69
|
|
|
67
70
|
param.open = !param.open;
|
|
68
71
|
|
|
69
|
-
|
|
72
|
+
chooseAnimationBasedOnState(action);
|
|
70
73
|
|
|
71
74
|
if (Array.isArray(_views)) {
|
|
72
75
|
args.delay = param.delay;
|
|
@@ -140,14 +143,7 @@ function Animation(args) {
|
|
|
140
143
|
return (param.draggables.map(a => a.id).includes(_source.id)) ? _source : realSourceView(_source.parent);
|
|
141
144
|
}
|
|
142
145
|
|
|
143
|
-
function
|
|
144
|
-
if (_view.bounds) {
|
|
145
|
-
if (_view.bounds.right !== undefined && _view.left > _view.parent.rect.width - _view.rect.width - _view.bounds.right) _view.left = _view.parent.rect.width - _view.rect.width - _view.bounds.right;
|
|
146
|
-
if (_view.bounds.bottom !== undefined && _view.top > _view.parent.rect.height - _view.rect.height - _view.bounds.bottom) _view.top = _view.parent.rect.height - _view.rect.height - _view.bounds.bottom;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function checkAnimation(action) {
|
|
146
|
+
function chooseAnimationBasedOnState(action) {
|
|
151
147
|
if (args.animationProperties) {
|
|
152
148
|
// For regular animations, including extra animations with open and close states.
|
|
153
149
|
args = param.open ? { ...args, ...args.animationProperties.open } : { ...args, ...args.animationProperties.close };
|
|
@@ -155,10 +151,10 @@ function Animation(args) {
|
|
|
155
151
|
if (action === 'play') {
|
|
156
152
|
logger(' -> `' + action + '` Check Animation');
|
|
157
153
|
if (param.open && args.transformOnOpen) {
|
|
158
|
-
logger(' ->
|
|
154
|
+
logger(' -> set args.transform = args.transformOnOpen');
|
|
159
155
|
args.transform = args.transformOnOpen;
|
|
160
156
|
} else if (args.transformOnClose) {
|
|
161
|
-
logger(' ->
|
|
157
|
+
logger(' -> set args.transform = args.transformOnClose');
|
|
162
158
|
args.transform = args.transformOnClose;
|
|
163
159
|
}
|
|
164
160
|
|
|
@@ -167,34 +163,41 @@ function Animation(args) {
|
|
|
167
163
|
}
|
|
168
164
|
}
|
|
169
165
|
|
|
166
|
+
function checkBoundaries(_view) {
|
|
167
|
+
if (_view.bounds) {
|
|
168
|
+
if (_view.bounds.right !== undefined && _view.left > _view.parent.rect.width - _view.rect.width - _view.bounds.right) _view.left = _view.parent.rect.width - _view.rect.width - _view.bounds.right;
|
|
169
|
+
if (_view.bounds.bottom !== undefined && _view.top > _view.parent.rect.height - _view.rect.height - _view.bounds.bottom) _view.top = _view.parent.rect.height - _view.rect.height - _view.bounds.bottom;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function checkComplete(view, action) {
|
|
174
|
+
if (args.animationProperties && args.animationProperties.complete) {
|
|
175
|
+
logger(' -> `complete` Animation');
|
|
176
|
+
if (action === 'play') {
|
|
177
|
+
param.playing = true;
|
|
178
|
+
view.animate(Ti.UI.createAnimation({ ...args, ...args.animationProperties.complete, transform: Ti.UI.createMatrix2D(args.animationProperties.complete) }), () => {
|
|
179
|
+
param.playing = false;
|
|
180
|
+
});
|
|
181
|
+
} else {
|
|
182
|
+
view.applyProperties(args.animationProperties.complete);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
170
187
|
function logger(_message, forceLog = false) {
|
|
171
|
-
if (param.debug || forceLog) console.warn(`::
|
|
188
|
+
if (param.debug || forceLog) console.warn(`::ti.animation:: ${_message}`);
|
|
172
189
|
}
|
|
173
190
|
|
|
174
191
|
function notFound(source) {
|
|
175
192
|
console.error('The provided target can’t be found!');
|
|
176
193
|
}
|
|
177
194
|
|
|
178
|
-
function innerAnimations(_view, _action) {
|
|
179
|
-
_.each(_view.children, child => {
|
|
180
|
-
if (param.open && child['animationProperties'] && child['animationProperties']['open']) {
|
|
181
|
-
if (_action === 'play') {
|
|
182
|
-
child.animate(createAnimationObject(child, 'open'), () => {
|
|
183
|
-
if (child['animationProperties']['complete']) child.animate(createAnimationObject(child, 'complete'));
|
|
184
|
-
});
|
|
185
|
-
} else {
|
|
186
|
-
child.applyProperties(child['animationProperties']['open']);
|
|
187
|
-
}
|
|
188
|
-
} else if (child['animationProperties'] && child['animationProperties']['close']) {
|
|
189
|
-
(_action === 'play') ? child.animate(createAnimationObject(child, 'close')) : child.applyProperties(child['animationProperties']['close']);
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
|
|
194
195
|
function createAnimationObject(_child, type) {
|
|
195
196
|
return Ti.UI.createAnimation({
|
|
196
|
-
...
|
|
197
|
-
|
|
197
|
+
...(args['animationProperties'] && args['animationProperties']['children']) ?? {},
|
|
198
|
+
..._child['animationProperties']['child'] ?? {},
|
|
199
|
+
..._child['animationProperties'][type] ?? {},
|
|
200
|
+
transform: Ti.UI.createMatrix2D(_child['animationProperties'][type] ?? {})
|
|
198
201
|
});
|
|
199
202
|
}
|
|
200
203
|
|
|
@@ -202,7 +205,7 @@ function Animation(args) {
|
|
|
202
205
|
function checkDraggable(_view, _action) {
|
|
203
206
|
logger('Check Draggable');
|
|
204
207
|
logger(' -> `' + _action + '`');
|
|
205
|
-
let draggingType =
|
|
208
|
+
let draggingType = _view.draggingType ?? args.draggingType;
|
|
206
209
|
if (_action === 'drag' && _view.draggable && _view.draggable.drag) {
|
|
207
210
|
let theArgs = (args.draggable) ? { ...args.draggable.drag, ..._view.draggable.drag } : _view.draggable.drag;
|
|
208
211
|
(draggingType === 'apply') ? _view.applyProperties(theArgs) : _view.animate(Ti.UI.createAnimation(theArgs));
|
|
@@ -218,20 +221,6 @@ function Animation(args) {
|
|
|
218
221
|
}
|
|
219
222
|
}
|
|
220
223
|
|
|
221
|
-
function checkComplete(view, action) {
|
|
222
|
-
if (args.animationProperties && args.animationProperties.complete) {
|
|
223
|
-
logger(' -> `complete` Animation');
|
|
224
|
-
if (action === 'play') {
|
|
225
|
-
param.playing = true;
|
|
226
|
-
view.animate(Ti.UI.createAnimation({ ...args, ...args.animationProperties.complete, transform: Ti.UI.createMatrix2D(args.animationProperties.complete) }), () => {
|
|
227
|
-
param.playing = false;
|
|
228
|
-
});
|
|
229
|
-
} else {
|
|
230
|
-
view.applyProperties(args.animationProperties.complete);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
224
|
function playView(view, _cb, action) {
|
|
236
225
|
if (view) {
|
|
237
226
|
logger(' -> `animate` View');
|
|
@@ -271,6 +260,25 @@ function Animation(args) {
|
|
|
271
260
|
}
|
|
272
261
|
}
|
|
273
262
|
|
|
263
|
+
function innerAnimations(_view, _action) {
|
|
264
|
+
_.each(_view.children, child => {
|
|
265
|
+
if (param.open && child['animationProperties'] && child['animationProperties']['open']) {
|
|
266
|
+
if (_action === 'play') {
|
|
267
|
+
child.animate(createAnimationObject(child, 'open'), () => {
|
|
268
|
+
if (child['animationProperties']['complete']) child.animate(createAnimationObject(child, 'complete'));
|
|
269
|
+
});
|
|
270
|
+
} else {
|
|
271
|
+
child.applyProperties({
|
|
272
|
+
transform: Ti.UI.createMatrix2D(child['animationProperties']['open']),
|
|
273
|
+
...child['animationProperties']['open']
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
} else if (child['animationProperties'] && child['animationProperties']['close']) {
|
|
277
|
+
(_action === 'play') ? child.animate(createAnimationObject(child, 'close')) : child.applyProperties({ transform: Ti.UI.createMatrix2D(child['animationProperties']['close']), ...child['animationProperties']['close'] });
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
|
|
274
282
|
return animationView;
|
|
275
283
|
}
|
|
276
284
|
exports.AnimationProperties = Animation;
|
package/dist/tailwind.tss
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Based on Tailwind CSS v3.2.
|
|
1
|
+
// Based on Tailwind CSS v3.2.4: A utility-first CSS framework for rapidly building custom designs. ( https://tailwindcss.com )
|
|
2
2
|
// Created by Adam Wathan ( https://twitter.com/adamwathan ).
|
|
3
3
|
|
|
4
4
|
// Tailwind-like styles
|
|
@@ -1717,7 +1717,7 @@
|
|
|
1717
1717
|
'.hidden': { visible: false }
|
|
1718
1718
|
|
|
1719
1719
|
// Property(ies): borderRadius ( with Extra Styles )
|
|
1720
|
-
// Component(s): Ti.UI.Android.CardView, Ti.UI.
|
|
1720
|
+
// Component(s): Ti.UI.View, Ti.Media.VideoPlayer, Ti.UI.Android.CardView, Ti.UI.Android.DrawerLayout, Ti.UI.Android.SearchView, Ti.UI.Button, Ti.UI.ButtonBar, Ti.UI.DashboardView, Ti.UI.ImageView, Ti.UI.Label, Ti.UI.ListView, Ti.UI.MaskedImage, Ti.UI.NavigationWindow, Ti.UI.OptionBar, Ti.UI.Picker, Ti.UI.PickerRow, Ti.UI.ProgressBar, Ti.UI.ScrollView, Ti.UI.ScrollableView, Ti.UI.SearchBar, Ti.UI.Slider, Ti.UI.Switch, Ti.UI.TabbedBar, Ti.UI.TableView, Ti.UI.TableViewRow, Ti.UI.TextArea, Ti.UI.TextField, Ti.UI.Toolbar, Ti.UI.WebView, Ti.UI.Window, Ti.UI.iOS.BlurView, Ti.UI.iOS.CoverFlowView, Ti.UI.iOS.LivePhotoView, Ti.UI.iOS.SplitWindow, Ti.UI.iOS.Stepper
|
|
1721
1721
|
'.rounded-1': { borderRadius: 2 }
|
|
1722
1722
|
'.rounded-2': { borderRadius: 4 }
|
|
1723
1723
|
'.rounded-3': { borderRadius: 6 }
|
|
@@ -2748,7 +2748,12 @@
|
|
|
2748
2748
|
'.-rotate-12': { rotate: -12 }
|
|
2749
2749
|
'.-rotate-45': { rotate: -45 }
|
|
2750
2750
|
'.-rotate-90': { rotate: -90 }
|
|
2751
|
+
'.-rotate-135': { rotate: -135 }
|
|
2751
2752
|
'.-rotate-180': { rotate: -180 }
|
|
2753
|
+
'.-rotate-225': { rotate: -225 }
|
|
2754
|
+
'.-rotate-270': { rotate: -270 }
|
|
2755
|
+
'.-rotate-315': { rotate: -315 }
|
|
2756
|
+
'.-rotate-360': { rotate: -360 }
|
|
2752
2757
|
|
|
2753
2758
|
// Property(ies): animationProperties - scales the view (in or out) and resets it to 100% when the animation completes
|
|
2754
2759
|
// Component(s): Animation
|
|
@@ -2766,6 +2771,7 @@
|
|
|
2766
2771
|
'.zoom-in-110': { animationProperties: { open: { scale: 1.1 }, complete: { scale: 1 } } }
|
|
2767
2772
|
'.zoom-in-125': { animationProperties: { open: { scale: 1.25 }, complete: { scale: 1 } } }
|
|
2768
2773
|
'.zoom-in-150': { animationProperties: { open: { scale: 1.5 }, complete: { scale: 1 } } }
|
|
2774
|
+
'.zoom-in-200': { animationProperties: { open: { scale: 2 }, complete: { scale: 1 } } }
|
|
2769
2775
|
'.zoom-out-0': { animationProperties: { close: { scale: 0 }, complete: { scale: 1 } } }
|
|
2770
2776
|
'.zoom-out-1': { animationProperties: { close: { scale: 0.01 }, complete: { scale: 1 } } }
|
|
2771
2777
|
'.zoom-out-5': { animationProperties: { close: { scale: 0.05 }, complete: { scale: 1 } } }
|
|
@@ -2780,6 +2786,7 @@
|
|
|
2780
2786
|
'.zoom-out-110': { animationProperties: { close: { scale: 1.1 }, complete: { scale: 1 } } }
|
|
2781
2787
|
'.zoom-out-125': { animationProperties: { close: { scale: 1.25 }, complete: { scale: 1 } } }
|
|
2782
2788
|
'.zoom-out-150': { animationProperties: { close: { scale: 1.5 }, complete: { scale: 1 } } }
|
|
2789
|
+
'.zoom-out-200': { animationProperties: { close: { scale: 2 }, complete: { scale: 1 } } }
|
|
2783
2790
|
|
|
2784
2791
|
// Property(ies): width and height
|
|
2785
2792
|
// Component(s): Ti.UI.View, Ti.Blob, Ti.Media.VideoPlayer, MovieSize, Ti.UI.ActivityIndicator, Ti.UI.Android.CardView, Ti.UI.Android.DrawerLayout, Ti.UI.Android.SearchView, Ti.UI.Animation, Ti.UI.Button, Ti.UI.ButtonBar, Ti.UI.DashboardView, Dimension, DimensionWithAbsolutes, Ti.UI.ImageView, Ti.UI.Label, Ti.UI.ListView, Ti.UI.MaskedImage, Ti.UI.NavigationWindow, Ti.UI.OptionBar, Ti.UI.Picker, Ti.UI.PickerRow, Ti.UI.ProgressBar, Ti.UI.ScrollView, Ti.UI.ScrollableView, Ti.UI.SearchBar, Size, Ti.UI.Slider, Ti.UI.Switch, Ti.UI.TabbedBar, Ti.UI.TableView, Ti.UI.TableViewRow, Ti.UI.TextArea, Ti.UI.TextField, Ti.UI.Toolbar, Ti.UI.WebView, Ti.UI.Window, openWindowParams, Ti.UI.iOS.BlurView, Ti.UI.iOS.CoverFlowView, CoverFlowImageType, Ti.UI.iOS.LivePhotoView, Ti.UI.iOS.SplitWindow, Ti.UI.iOS.Stepper, BarItemType, Ti.UI.iPad.Popover
|
|
@@ -6543,6 +6550,7 @@
|
|
|
6543
6550
|
'.scale-x-110': { scaleX: 1.1 }
|
|
6544
6551
|
'.scale-x-125': { scaleX: 1.25 }
|
|
6545
6552
|
'.scale-x-150': { scaleX: 1.5 }
|
|
6553
|
+
'.scale-x-200': { scaleX: 2 }
|
|
6546
6554
|
|
|
6547
6555
|
// Property: scaleY
|
|
6548
6556
|
// Description: Scaling of the view in y-axis in pixels.
|
|
@@ -6561,6 +6569,7 @@
|
|
|
6561
6569
|
'.scale-y-110': { scaleY: 1.1 }
|
|
6562
6570
|
'.scale-y-125': { scaleY: 1.25 }
|
|
6563
6571
|
'.scale-y-150': { scaleY: 1.5 }
|
|
6572
|
+
'.scale-y-200': { scaleY: 2 }
|
|
6564
6573
|
|
|
6565
6574
|
// Property: softKeyboardOnFocus
|
|
6566
6575
|
// Description: Determines keyboard behavior when this view is focused. Defaults to Titanium.UI.Android.SOFT_KEYBOARD_DEFAULT_ON_FOCUS.
|
|
@@ -9874,6 +9883,7 @@
|
|
|
9874
9883
|
'.scale-110': { scale: 1.1 }
|
|
9875
9884
|
'.scale-125': { scale: 1.25 }
|
|
9876
9885
|
'.scale-150': { scale: 1.5 }
|
|
9886
|
+
'.scale-200': { scale: 2 }
|
|
9877
9887
|
|
|
9878
9888
|
// Property: rotate
|
|
9879
9889
|
// Component(s): MatrixCreationDict, Matrix2DCreationDict
|
|
@@ -9885,7 +9895,12 @@
|
|
|
9885
9895
|
'.rotate-12': { rotate: 12 }
|
|
9886
9896
|
'.rotate-45': { rotate: 45 }
|
|
9887
9897
|
'.rotate-90': { rotate: 90 }
|
|
9898
|
+
'.rotate-135': { rotate: 135 }
|
|
9888
9899
|
'.rotate-180': { rotate: 180 }
|
|
9900
|
+
'.rotate-225': { rotate: 225 }
|
|
9901
|
+
'.rotate-270': { rotate: 270 }
|
|
9902
|
+
'.rotate-315': { rotate: 315 }
|
|
9903
|
+
'.rotate-360': { rotate: 360 }
|
|
9889
9904
|
|
|
9890
9905
|
// Property: indicatorColor
|
|
9891
9906
|
// Description: Color of the animated indicator.
|
|
@@ -16233,6 +16248,7 @@
|
|
|
16233
16248
|
'.max-zoom-scale-110': { maxZoomScale: 1.1 }
|
|
16234
16249
|
'.max-zoom-scale-125': { maxZoomScale: 1.25 }
|
|
16235
16250
|
'.max-zoom-scale-150': { maxZoomScale: 1.5 }
|
|
16251
|
+
'.max-zoom-scale-200': { maxZoomScale: 2 }
|
|
16236
16252
|
|
|
16237
16253
|
// Property: minZoomScale
|
|
16238
16254
|
// Description: Minimum scaling factor of the scrollable region and its content.
|
|
@@ -16251,6 +16267,7 @@
|
|
|
16251
16267
|
'.min-zoom-scale-110': { minZoomScale: 1.1 }
|
|
16252
16268
|
'.min-zoom-scale-125': { minZoomScale: 1.25 }
|
|
16253
16269
|
'.min-zoom-scale-150': { minZoomScale: 1.5 }
|
|
16270
|
+
'.min-zoom-scale-200': { minZoomScale: 2 }
|
|
16254
16271
|
|
|
16255
16272
|
// Property: overScrollMode
|
|
16256
16273
|
// Component(s): Ti.UI.ScrollView, Ti.UI.ScrollableView, Ti.UI.TableView, Ti.UI.WebView
|
|
@@ -16299,6 +16316,7 @@
|
|
|
16299
16316
|
'.zoom-scale-110': { zoomScale: 1.1 }
|
|
16300
16317
|
'.zoom-scale-125': { zoomScale: 1.25 }
|
|
16301
16318
|
'.zoom-scale-150': { zoomScale: 1.5 }
|
|
16319
|
+
'.zoom-scale-200': { zoomScale: 2 }
|
|
16302
16320
|
|
|
16303
16321
|
// Property: cacheSize
|
|
16304
16322
|
// Description: Number of pages to cache (pre-render).
|
|
@@ -20669,6 +20687,7 @@
|
|
|
20669
20687
|
'.scales-page-to-fit-110': { scalesPageToFit: 1.1 }
|
|
20670
20688
|
'.scales-page-to-fit-125': { scalesPageToFit: 1.25 }
|
|
20671
20689
|
'.scales-page-to-fit-150': { scalesPageToFit: 1.5 }
|
|
20690
|
+
'.scales-page-to-fit-200': { scalesPageToFit: 2 }
|
|
20672
20691
|
|
|
20673
20692
|
// Property: willHandleTouches
|
|
20674
20693
|
// Description: Explicitly specifies if this web view handles touches.
|
|
@@ -34,7 +34,7 @@ const configFile = (fs.existsSync(projectsConfigJS)) ? require(projectsConfigJS)
|
|
|
34
34
|
configFile.purge = configFile.purge ?? { mode: 'all' };
|
|
35
35
|
configFile.theme.extend = configFile.theme.extend ?? {};
|
|
36
36
|
|
|
37
|
-
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options :
|
|
37
|
+
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options : {};
|
|
38
38
|
if (configOptions) {
|
|
39
39
|
configOptions.plugins = configOptions.plugins ?? [];
|
|
40
40
|
configOptions.safelist = configOptions.safelist ?? [];
|
|
@@ -246,7 +246,7 @@ function processCompoundClasses({ ..._base }) {
|
|
|
246
246
|
//! colors
|
|
247
247
|
compoundClasses += generateGlossary('backgroundGradient', helpers.backgroundGradient(combineKeys(configFile.theme, _base.colors, 'backgroundGradient')));
|
|
248
248
|
compoundClasses += generateGlossary('backgroundSelectedGradient', helpers.backgroundSelectedGradient(combineKeys(configFile.theme, _base.colors, 'backgroundSelectedGradient')));
|
|
249
|
-
compoundClasses += generateGlossary('color-alternative', helpers.textColor(
|
|
249
|
+
compoundClasses += generateGlossary('color-alternative', helpers.textColor(_base.textColor));
|
|
250
250
|
compoundClasses += generateGlossary('hintTextColor', helpers.placeholder(combineKeys(configFile.theme, _base.colors, 'hintTextColor')));
|
|
251
251
|
compoundClasses += generateGlossary('titleAttributes-color', helpers.titleAttributesColor(combineKeys(configFile.theme, _base.colors, 'titleAttributesColor')));
|
|
252
252
|
compoundClasses += generateGlossary('titleAttributes-shadow-color', helpers.titleAttributesShadowColor(combineKeys(configFile.theme, _base.colors, 'titleAttributesShadowColor')));
|
|
@@ -316,7 +316,7 @@ function combineDefaultThemeWithConfigFile() {
|
|
|
316
316
|
height: {},
|
|
317
317
|
widthHeight: {},
|
|
318
318
|
boolean: { true: true, false: false },
|
|
319
|
-
rotate: combineKeys(configFile.theme, defaultTheme.rotate, 'rotate'),
|
|
319
|
+
rotate: combineKeys(configFile.theme, { ...defaultTheme.rotate, ...{ '135': '135deg', '225': '225deg', '270': '270deg', '315': '315deg', '360': '360deg' } }, 'rotate'),
|
|
320
320
|
zIndex: defaultTheme.zIndex,
|
|
321
321
|
opacity: defaultTheme.opacity,
|
|
322
322
|
fontWeight: defaultTheme.fontWeight,
|
|
@@ -325,7 +325,7 @@ function combineDefaultThemeWithConfigFile() {
|
|
|
325
325
|
minimumFontSize: { ...themeOrDefaultValues.minimumFontSize, ...configFile.theme.extend.spacing, ...configFile.theme.extend.minimumFontSize },
|
|
326
326
|
verticalMargin: { top: '-0.5', bottom: '0.5', middle: '0' },
|
|
327
327
|
horizontalMargin: { left: '-0.5', right: '0.5', center: '0' },
|
|
328
|
-
scale: { ...{ 1: '0.01', 5: '0.05', 10: '0.10', 25: '0.25' }, ...defaultTheme.scale },
|
|
328
|
+
scale: { ...{ 1: '0.01', 5: '0.05', 10: '0.10', 25: '0.25', 200: 2 }, ...defaultTheme.scale },
|
|
329
329
|
repeat: { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12 },
|
|
330
330
|
count: { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12 },
|
|
331
331
|
delay: { ...{ 0: '0ms', 25: '25ms', 50: '50ms', 250: '250ms', 350: '350ms', 400: '400ms', 450: '450ms', 600: '600ms', 800: '800ms', 900: '900ms', 2000: '2000ms', 3000: '3000ms', 4000: '4000ms', 5000: '5000ms' }, ...defaultTheme.transitionDelay }
|
package/index.js
CHANGED
|
@@ -103,7 +103,7 @@ const configFile = (fs.existsSync(projectsConfigJS)) ? require(projectsConfigJS)
|
|
|
103
103
|
configFile.purge = configFile.purge ?? { mode: 'all' };
|
|
104
104
|
configFile.theme.extend = configFile.theme.extend ?? {};
|
|
105
105
|
|
|
106
|
-
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options :
|
|
106
|
+
const configOptions = (configFile.purge && configFile.purge.options) ? configFile.purge.options : {};
|
|
107
107
|
if (configOptions) {
|
|
108
108
|
configOptions.legacy = configOptions.legacy ?? false;
|
|
109
109
|
configOptions.widgets = configOptions.widgets ?? false;
|
|
@@ -656,14 +656,14 @@ function buildFonts(options) {
|
|
|
656
656
|
|
|
657
657
|
exportIcons += '\n// Helper Functions\n' + fs.readFileSync(path.resolve(__dirname, './lib/templates/icon-functions.js'), 'utf8');
|
|
658
658
|
|
|
659
|
-
fs.writeFileSync(`${projectsLibFolder}/purgetss.fonts.js
|
|
659
|
+
fs.writeFileSync(`${projectsLibFolder}/purgetss.fonts.js`, exportIcons, err => {
|
|
660
660
|
throw err;
|
|
661
661
|
});
|
|
662
662
|
|
|
663
663
|
logger.info(`${chalk.yellow('./app/lib/purgetss.fonts.js')} file created!`);
|
|
664
664
|
} else {
|
|
665
|
-
if (fs.existsSync(`${projectsLibFolder}/purgetss.fonts.js
|
|
666
|
-
fs.unlinkSync(`${projectsLibFolder}/purgetss.fonts.js
|
|
665
|
+
if (fs.existsSync(`${projectsLibFolder}/purgetss.fonts.js`)) {
|
|
666
|
+
fs.unlinkSync(`${projectsLibFolder}/purgetss.fonts.js`);
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
669
|
|
|
@@ -1072,7 +1072,18 @@ function addHook() {
|
|
|
1072
1072
|
|
|
1073
1073
|
saveFile(projectsAlloyJMKFile, updatedJMKFile.join("\n"));
|
|
1074
1074
|
} else {
|
|
1075
|
-
|
|
1075
|
+
let alloyJMKTemplate = fs.readFileSync(srcJMKFile, 'utf8');
|
|
1076
|
+
|
|
1077
|
+
let updatedJMKFile = [];
|
|
1078
|
+
|
|
1079
|
+
alloyJMKTemplate.split(/\r?\n/).forEach((line) => {
|
|
1080
|
+
if (line.includes('pre:compile')) {
|
|
1081
|
+
line += `\n\trequire('child_process').execSync('purgetss', logger.warn('::PurgeTSS:: Auto-Purging ' + event.dir.project));`;
|
|
1082
|
+
}
|
|
1083
|
+
updatedJMKFile.push(line);
|
|
1084
|
+
});
|
|
1085
|
+
|
|
1086
|
+
fs.appendFileSync(projectsAlloyJMKFile, '\n' + updatedJMKFile.join("\n"));
|
|
1076
1087
|
}
|
|
1077
1088
|
}
|
|
1078
1089
|
|
|
@@ -2480,6 +2491,14 @@ function purgeTailwind(uniqueClasses) {
|
|
|
2480
2491
|
deviceClasses.push(helpers.checkPlatformAndDevice(tailwindClass, cleanUniqueClasses[cleanUniqueClasses.indexOf(`handheld:${cleanTailwindClass}`)]));
|
|
2481
2492
|
}
|
|
2482
2493
|
|
|
2494
|
+
if (cleanUniqueClasses.indexOf(`children:${cleanTailwindClass}`) > -1) {
|
|
2495
|
+
anArrayOfAnimationClasses.push(helpers.checkPlatformAndDevice(tailwindClass, cleanUniqueClasses[cleanUniqueClasses.indexOf(`children:${cleanTailwindClass}`)]));
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2498
|
+
if (cleanUniqueClasses.indexOf(`child:${cleanTailwindClass}`) > -1) {
|
|
2499
|
+
anArrayOfAnimationClasses.push(helpers.checkPlatformAndDevice(tailwindClass, cleanUniqueClasses[cleanUniqueClasses.indexOf(`child:${cleanTailwindClass}`)]));
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2483
2502
|
if (cleanUniqueClasses.indexOf(`open:${cleanTailwindClass}`) > -1) {
|
|
2484
2503
|
anArrayOfAnimationClasses.push(helpers.checkPlatformAndDevice(tailwindClass, cleanUniqueClasses[cleanUniqueClasses.indexOf(`open:${cleanTailwindClass}`)]));
|
|
2485
2504
|
}
|
|
@@ -2554,7 +2573,7 @@ function switchPlatform(withPlatformDeviceStyle) {
|
|
|
2554
2573
|
}
|
|
2555
2574
|
|
|
2556
2575
|
function cleanClassNameFn(className) {
|
|
2557
|
-
return className.replace('ios:', '').replace('android:', '').replace('handheld:', '').replace('tablet:', '').replace('open:', '').replace('close:', '').replace('complete:', '').replace('drag:', '').replace('drop:', '').replace('bounds:', '');
|
|
2576
|
+
return className.replace('ios:', '').replace('android:', '').replace('handheld:', '').replace('tablet:', '').replace('children:', '').replace('child:', '').replace('open:', '').replace('close:', '').replace('complete:', '').replace('drag:', '').replace('drop:', '').replace('bounds:', '');
|
|
2558
2577
|
}
|
|
2559
2578
|
|
|
2560
2579
|
//! FontAwesome
|
package/lib/helpers.js
CHANGED
|
@@ -6393,7 +6393,7 @@ function compileApplyDirectives(twClasses) {
|
|
|
6393
6393
|
} else if (searchClass.includes('android:')) {
|
|
6394
6394
|
searchClass = `${searchClass.replace('android:', '')}[platform=android]`;
|
|
6395
6395
|
}
|
|
6396
|
-
//! Needs to handle open, close and complete states...
|
|
6396
|
+
//! TODO: Needs to handle open, close and complete states...
|
|
6397
6397
|
if (searchClass.includes('(')) {
|
|
6398
6398
|
let theClass = formatArbitraryValues(searchClass);
|
|
6399
6399
|
if (theClass) compoundClasses.push(theClass);
|
|
@@ -6743,6 +6743,10 @@ function checkPlatformAndDevice(line, className) {
|
|
|
6743
6743
|
return (line.includes('formFactor=tablet'))
|
|
6744
6744
|
? `${line.replace(/[^'.][^']+|1/, `tablet:$&`)}\n`
|
|
6745
6745
|
: `${line.replace(/[^'.][^']+|1/, `tablet:$&[formFactor=tablet]`)}\n`;
|
|
6746
|
+
} else if (className.includes('child:')) {
|
|
6747
|
+
return `${line.replace(/[^'.][^']+|1/, `child:$&`).replace(/{(.*)}/, '{ animationProperties: { child: $& } }')}\n`;
|
|
6748
|
+
} else if (className.includes('children:')) {
|
|
6749
|
+
return `${line.replace(/[^'.][^']+|1/, `children:$&`).replace(/{(.*)}/, '{ animationProperties: { children: $& } }')}\n`;
|
|
6746
6750
|
} else if (className.includes('open:')) {
|
|
6747
6751
|
return `${line.replace(/[^'.][^']+|1/, `open:$&`).replace(/{(.*)}/, '{ animationProperties: { open: $& } }')}\n`;
|
|
6748
6752
|
} else if (className.includes('close:')) {
|
|
@@ -6838,6 +6842,8 @@ function parseValue(value, sign = '') {
|
|
|
6838
6842
|
|
|
6839
6843
|
let unit = isNaN(value) ? checkTitanium(value) : value;
|
|
6840
6844
|
|
|
6845
|
+
if (typeof value === 'string' && value.indexOf('-') > -1 || value < 0) sign = '';
|
|
6846
|
+
|
|
6841
6847
|
switch (unit) {
|
|
6842
6848
|
case '0':
|
|
6843
6849
|
case true:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
// Based on Tailwind CSS v3.2.
|
|
1
|
+
// Based on Tailwind CSS v3.2.4: A utility-first CSS framework for rapidly building custom designs. ( https://tailwindcss.com )
|
|
2
2
|
// Created by Adam Wathan ( https://twitter.com/adamwathan ).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "purgetss",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.12",
|
|
4
4
|
"description": "An extension for Titanium SDK that contains a set of Tailwind-like classes to easily and quickly create beautifully designed mobile apps.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"path": "^0.12.7",
|
|
59
59
|
"prompts": "^2.4.2",
|
|
60
60
|
"read-css": "^0.3.0",
|
|
61
|
-
"tailwindcss": "^3.2.
|
|
61
|
+
"tailwindcss": "^3.2.4",
|
|
62
62
|
"traverse": "^0.6.7",
|
|
63
63
|
"update-notifier": "^5.1.0",
|
|
64
64
|
"uuid": "^9.0.0",
|