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.
@@ -1,6 +1,6 @@
1
1
  ```scss
2
2
  // Property(ies): borderRadius ( with Extra Styles )
3
- // Component(s): Ti.UI.Android.CardView, Ti.UI.View
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
  ```
@@ -16,4 +16,5 @@
16
16
  '.max-zoom-scale-110': { maxZoomScale: 1.1 }
17
17
  '.max-zoom-scale-125': { maxZoomScale: 1.25 }
18
18
  '.max-zoom-scale-150': { maxZoomScale: 1.5 }
19
+ '.max-zoom-scale-200': { maxZoomScale: 2 }
19
20
  ```
@@ -16,4 +16,5 @@
16
16
  '.min-zoom-scale-110': { minZoomScale: 1.1 }
17
17
  '.min-zoom-scale-125': { minZoomScale: 1.25 }
18
18
  '.min-zoom-scale-150': { minZoomScale: 1.5 }
19
+ '.min-zoom-scale-200': { minZoomScale: 2 }
19
20
  ```
@@ -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,4 +15,5 @@
15
15
  '.scale-110': { scale: 1.1 }
16
16
  '.scale-125': { scale: 1.25 }
17
17
  '.scale-150': { scale: 1.5 }
18
+ '.scale-200': { scale: 2 }
18
19
  ```
@@ -16,4 +16,5 @@
16
16
  '.scale-x-110': { scaleX: 1.1 }
17
17
  '.scale-x-125': { scaleX: 1.25 }
18
18
  '.scale-x-150': { scaleX: 1.5 }
19
+ '.scale-x-200': { scaleX: 2 }
19
20
  ```
@@ -16,4 +16,5 @@
16
16
  '.scale-y-110': { scaleY: 1.1 }
17
17
  '.scale-y-125': { scaleY: 1.25 }
18
18
  '.scale-y-150': { scaleY: 1.5 }
19
+ '.scale-y-200': { scaleY: 2 }
19
20
  ```
@@ -16,4 +16,5 @@
16
16
  '.scales-page-to-fit-110': { scalesPageToFit: 1.1 }
17
17
  '.scales-page-to-fit-125': { scalesPageToFit: 1.25 }
18
18
  '.scales-page-to-fit-150': { scalesPageToFit: 1.5 }
19
+ '.scales-page-to-fit-200': { scalesPageToFit: 2 }
19
20
  ```
@@ -16,4 +16,5 @@
16
16
  '.zoom-scale-110': { zoomScale: 1.1 }
17
17
  '.zoom-scale-125': { zoomScale: 1.25 }
18
18
  '.zoom-scale-150': { zoomScale: 1.5 }
19
+ '.zoom-scale-200': { zoomScale: 2 }
19
20
  ```
@@ -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
- logger('`play` Called');
41
- (param.playing) ? logger(`$.${param.view.id}: is playing...`) : play(_views, _cb);
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
- logger('`apply` Called');
48
- play(_views, _cb, 'apply')
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
- logger('`draggable` Called');
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 play(_views, _cb, action = 'play') {
65
- logger(' -> `play` helper');
67
+ function mainPlayApplyFn(_views, _cb, action = 'play') {
68
+ logger(' -> `mainPlayApplyFn` helper');
66
69
 
67
70
  param.open = !param.open;
68
71
 
69
- checkAnimation(action);
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 checkBoundaries(_view) {
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(' -> Set args.transform = args.transformOnOpen');
154
+ logger(' -> set args.transform = args.transformOnOpen');
159
155
  args.transform = args.transformOnOpen;
160
156
  } else if (args.transformOnClose) {
161
- logger(' -> Set args.transform = args.transformOnClose');
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(`:: ti.animation :: ${_message}`);
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
- ..._child['animationProperties'][type],
197
- transform: Ti.UI.createMatrix2D(_child['animationProperties'][type])
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 = (_view.draggingType) ? _view.draggingType : args.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: A utility-first CSS framework for rapidly building custom designs. ( https://tailwindcss.com )
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.View
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 : false;
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(combineKeys(configFile.theme, _base.colors, '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 : false;
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'`, exportIcons, err => {
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
- fs.appendFileSync(projectsAlloyJMKFile, '\n' + fs.readFileSync(srcJMKFile, 'utf8'));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sdkVersion": "11.1.0.GA",
3
+ "sdkVersion": "11.1.1.GA",
4
4
  "properties": {
5
5
  "ACCURACY_AUTHORIZATION_FULL": {
6
6
  "description": "The user authorized the app to access location data with full accuracy.",
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: A utility-first CSS framework for rapidly building custom designs. ( https://tailwindcss.com )
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.10",
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.1",
61
+ "tailwindcss": "^3.2.4",
62
62
  "traverse": "^0.6.7",
63
63
  "update-notifier": "^5.1.0",
64
64
  "uuid": "^9.0.0",