purgetss 3.0.5 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +84 -52
  2. package/assets/fonts/bootstrap-icons.ttf +0 -0
  3. package/assets/fonts/tabler-icons.ttf +0 -0
  4. package/assets/images/icon-fonts-bootstrap-grid.png +0 -0
  5. package/assets/images/shadow.png +0 -0
  6. package/bin/purgetss +9 -8
  7. package/dist/bootstrapicons.js +1714 -0
  8. package/dist/bootstrapicons.tss +1693 -0
  9. package/dist/tablericons.js +41 -1
  10. package/dist/tablericons.tss +40 -0
  11. package/dist/tailwind.tss +703 -165
  12. package/docs/whats-new/v2.5.0.md +57 -37
  13. package/docs/whats-new/v2.5.3.md +2 -1
  14. package/docs/whats-new/v2.5.5.md +20 -9
  15. package/docs/whats-new/v2.6.0.md +62 -43
  16. package/docs/whats-new/v3.0.3.md +2 -1
  17. package/docs/whats-new/v3.0.4.md +35 -0
  18. package/docs/whats-new/v3.0.5.md +43 -500
  19. package/docs/whats-new/v3.1.0.md +644 -0
  20. package/docs/whats-new/v3.1.1.md +262 -0
  21. package/docs/whats-new/v3.1.2.md +73 -0
  22. package/index.js +161 -57
  23. package/lib/build-bootstrap-icons-js.js +64 -0
  24. package/lib/build-bootstrap-icons-tss.js +50 -0
  25. package/lib/build-fonts-folder.js +8 -0
  26. package/lib/build-tailwind.js +24 -5
  27. package/lib/helpers.js +623 -171
  28. package/lib/templates/bootstrap-icons/bootstrap-icons.css +1705 -0
  29. package/lib/templates/bootstrap-icons/bootstrap-icons.ttf +0 -0
  30. package/lib/templates/bootstrap-icons/reset.tss +7 -0
  31. package/lib/templates/bootstrap-icons/template.js +4 -0
  32. package/lib/templates/bootstrap-icons/template.tss +2 -0
  33. package/lib/templates/tablericons/template.js +1 -1
  34. package/lib/templates/tailwind/template.tss +1 -1
  35. package/package.json +6 -4
  36. package/assets/images/drop-shadow.png +0 -0
  37. package/assets/images/icon-fonts-tabler.png +0 -0
package/README.md CHANGED
@@ -19,15 +19,16 @@
19
19
  ------
20
20
 
21
21
  ## Some key features of PurgeTSS
22
- - Provides more than 7600 [Tailwind-like utility classes](https://tailwindcss.com/) ready to use in your projects.
22
+ - Provides more than 8400 [Tailwind-like utility classes](https://tailwindcss.com/) ready to use in your projects.
23
23
  - Creates a clean `app.tss` file with only the classes used in your project by parsing all your XML files.
24
24
  - You can customize any of the default classes through a simple configuration file, or you can create new *just-in-time* classes with arbitrary values within the `Views`.
25
- - You can easily use Font Awesome, Material Design, Lineicons, Boxicons, Tabler Icons and Framework7-Icons fonts in `Buttons` and `Labels`.
25
+ - You can easily use Font Awesome, Material Design, Lineicons, Boxicons, Tabler Icons, Framework7-Icons and Bootstrap Icons fonts in `Buttons` and `Labels`.
26
26
  - Includes an Animation module to apply a 2D Matrix animation or transformation to any element or to an `Array` of elements.
27
27
  - Includes a simple two-dimensional Grid System to align and distribute elements in your views.
28
28
 
29
29
  ## List of available classes
30
30
  - [tailwind.tss](https://github.com/macCesar/purgeTSS/blob/master/dist/tailwind.tss)
31
+ - [bootstrapicons.tss](https://github.com/macCesar/purgeTSS/blob/master/dist/bootstrapicons.tss)
31
32
  - [boxicons.tss](https://github.com/macCesar/purgeTSS/blob/master/dist/boxicons.tss)
32
33
  - [fontawesome.tss](https://github.com/macCesar/purgeTSS/blob/master/dist/fontawesome.tss)
33
34
  - [framework7icons.tss](https://github.com/macCesar/purgeTSS/blob/master/dist/framework7icons.tss)
@@ -270,10 +271,10 @@ Use **`purgetss module`** command to install the `purgetss.ui.js` module in your
270
271
  If you want to create a new Alloy Project with `purgetss` ready to go, use the `create` command.
271
272
 
272
273
  ```bash
273
- > purgetss create 'Name of the Project' [--vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons"]
274
+ > purgetss create 'Name of the Project' [--vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons, bootstrapicons"]
274
275
 
275
276
  # alias:
276
- > purgetss c 'Name of the Project' [-v=fa,md,li,bx,f7]
277
+ > purgetss c 'Name of the Project' [-v=fa,md,li,bx,f7,ti,bi]
277
278
  ```
278
279
 
279
280
  You need to have `app.idprefix` and `app.idprefix` already configured in `ti config`.
@@ -300,7 +301,7 @@ When you run `purgetss create 'Name of the Project'` it will execute the followi
300
301
  - **`alloy new`** To convert it to an Alloy Project.
301
302
  - **`purgetss w`** To autorun `purgetss` every time you compile your project.
302
303
  - **`purgetss b`** To build a new `./purgetss/tailwind.tss` and `./purgetss/config.js` files.
303
- - **`[-v=fa,md,li,bx,f7]`** Set the `--vendor` argument to copy the selected fonts into your project. Including the CommonJS module into `./app/lib/` folder.
304
+ - **`[-v=fa,md,li,bx,f7,ti,bi]`** Set the `--vendor` argument to copy the selected fonts into your project. Including the CommonJS module into `./app/lib/` folder.
304
305
  - **`code .`**, **`subl .`** or **`open .`** It will use either one of these commands to open `VS Code`, `Sublime Text` or the project’s folder in that order.
305
306
 
306
307
  ## fonts
@@ -311,8 +312,10 @@ When you run `purgetss create 'Name of the Project'` it will execute the followi
311
312
  > purgetss f
312
313
  ```
313
314
 
314
- Use this command to copy the free versions of [Boxicons](https://boxicons.com), [Font Awesome](https://github.com/FortAwesome/Font-Awesome/tree/master/js-packages/%40fortawesome/fontawesome-free/webfonts), [Framework7 Icons](https://framework7.io/icons/), [LineIcons](https://lineicons.com/icons/?type=free), [Material Design Icons](https://github.com/google/material-design-icons) and [Tabler Icons](https://tabler-icons.io) Fonts into your `app/assets/fonts` folder. With their names fixed to work in iOS or Android.
315
+ Use this command to copy the free versions of [Boxicons](https://boxicons.com), [Font Awesome](https://github.com/FortAwesome/Font-Awesome/tree/master/js-packages/%40fortawesome/fontawesome-free/webfonts), [Framework7 Icons](https://framework7.io/icons/), [LineIcons](https://lineicons.com/icons/?type=free), [Material Design Icons](https://github.com/google/material-design-icons), [Tabler Icons](https://tabler-icons.io) and [Bootstrap Icons](https://icons.getbootstrap.com) Fonts into your `app/assets/fonts` folder. With their names fixed to work in iOS or Android.
315
316
 
317
+ > bootstrap-icons.ttf
318
+ >
316
319
  > boxicons.ttf
317
320
  >
318
321
  > FontAwesome5Brands-Regular.ttf
@@ -351,38 +354,58 @@ After copying the desired fonts, you can use them in Buttons and Labels, just se
351
354
  ```xml
352
355
  <Alloy>
353
356
  <Window>
354
- <View class="vertical">
355
- <!-- FontAwesome -->
356
- <Label class="mt-2 text-gray-700" text="FontAwesome" />
357
- <Label class="text-xl text-blue-500 fa fa-home" />
358
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded fa fa-home" />
359
-
360
- <!-- Material Design -->
361
- <Label class="mt-2 text-gray-700" text="Material Design" />
362
- <Label class="text-xl text-blue-500 md md-home" />
363
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded md md-home" />
364
-
365
- <!-- LineIcons -->
366
- <Label class="mt-2 text-gray-700" text="LineIcons" />
367
-
368
- <Label class="text-xl text-blue-500 lni lni-delivery" />
369
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded lni lni-delivery" />
370
-
371
- <!-- Boxicons -->
372
- <Label class="mt-2 text-gray-700" text="Boxicons" />
373
- <Label class="text-xl text-blue-500 bx bx-home" />
374
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded bx bx-home" />
375
-
376
- <!-- Framework7-Icons -->
377
- <Label class="mt-2 text-gray-700" text="Framework7-Icons" />
378
- <Label class="text-xl text-blue-500 f7 f7-house" />
379
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded f7 f7-house" />
380
-
381
- <!-- Tabler-Icons -->
382
- <Label class="mt-2 text-gray-700" text="Tabler-Icons" />
383
- <Label class="text-xl text-blue-500 ti ti-home" />
384
- <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded ti ti-home" />
385
- </View>
357
+ <ScrollView>
358
+ <View class="grid">
359
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
360
+ <!-- FontAwesome -->
361
+ <Label class="mt-2 text-gray-700" text="FontAwesome" />
362
+ <Label class="text-xl text-blue-500 fa fa-home" />
363
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded fa fa-home" />
364
+ </View>
365
+
366
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
367
+ <!-- Material Design -->
368
+ <Label class="mt-2 text-gray-700" text="Material Design" />
369
+ <Label class="text-xl text-blue-500 md md-home" />
370
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded md md-home" />
371
+ </View>
372
+
373
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
374
+ <!-- LineIcons -->
375
+ <Label class="mt-2 text-gray-700" text="LineIcons" />
376
+ <Label class="text-xl text-blue-500 lni lni-delivery" />
377
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded lni lni-delivery" />
378
+ </View>
379
+
380
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
381
+ <!-- Boxicons -->
382
+ <Label class="mt-2 text-gray-700" text="Boxicons" />
383
+ <Label class="text-xl text-blue-500 bx bx-home" />
384
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded bx bx-home" />
385
+ </View>
386
+
387
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
388
+ <!-- Framework7-Icons -->
389
+ <Label class="mt-2 text-gray-700" text="Framework7-Icons" />
390
+ <Label class="text-xl text-blue-500 f7 f7-house" />
391
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded f7 f7-house" />
392
+ </View>
393
+
394
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
395
+ <!-- Tabler-Icons -->
396
+ <Label class="mt-2 text-gray-700" text="Tabler-Icons" />
397
+ <Label class="text-xl text-blue-500 ti ti-home" />
398
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded ti ti-home" />
399
+ </View>
400
+
401
+ <View class="grid-cols-2 mx-auto gap-y-2 vertical">
402
+ <!-- Bootstrap Icons -->
403
+ <Label class="mt-2 text-gray-700" text="Bootstrap Icons" />
404
+ <Label class="text-xl text-blue-500 bi bi-house-fill" />
405
+ <Button class="w-10 h-10 my-1 text-xl text-white bg-blue-500 rounded bi bi-house-fill" />
406
+ </View>
407
+ </View>
408
+ </ScrollView>
386
409
  </Window>
387
410
  </Alloy>
388
411
  ```
@@ -392,20 +415,23 @@ After copying the desired fonts, you can use them in Buttons and Labels, just se
392
415
  // Created by César Estrada
393
416
  // https://github.com/macCesar/purgeTSS
394
417
 
395
- // Tailwind styles
418
+ // Main styles
396
419
  'View': { width: Ti.UI.SIZE, height: Ti.UI.SIZE }
397
420
  'Window': { backgroundColor: '#ffffff' }
398
421
  '.bg-blue-500': { backgroundColor: '#3b82f6' }
399
422
  '.rounded': { borderRadius: 4 }
400
423
  '.text-xl': { font: { fontSize: 20 } }
424
+ '.gap-y-2': { top: 8, bottom: 8 }
425
+ '.grid': { layout: 'horizontal' }
426
+ '.grid-cols-2': { width: '50%' }
401
427
  '.h-10': { height: 40 }
402
- '.keep-screen-on[platform=android]': { keepScreenOn: true }
403
428
  '.vertical': { layout: 'vertical' }
404
429
  '.my-1': { top: 4, bottom: 4 }
430
+ '.mx-auto': { right: null, left: null }
405
431
  '.mt-2': { top: 8 }
406
432
  '.text-white': { color: '#ffffff' }
433
+ '.text-gray-700': { color: '#374151' }
407
434
  '.text-blue-500': { color: '#3b82f6' }
408
- '.text-gray-700': { color: '#3f3f46' }
409
435
  '.w-10': { width: 40 }
410
436
 
411
437
  // Default Font Awesome styles
@@ -422,7 +448,7 @@ After copying the desired fonts, you can use them in Buttons and Labels, just se
422
448
 
423
449
  // BoxIcons styles
424
450
  '.bx': { font: { fontFamily: 'boxicons' } }
425
- '.bx-home': { text: '\ued75', title: '\ued75' }
451
+ '.bx-home': { text: '\ueb12', title: '\ueb12' }
426
452
 
427
453
  // Framework7 styles
428
454
  '.f7': { font: { fontFamily: 'Framework7-Icons' } }
@@ -431,27 +457,32 @@ After copying the desired fonts, you can use them in Buttons and Labels, just se
431
457
  // Tabler Icons styles
432
458
  '.ti': { font: { fontFamily: 'tabler-icons' } }
433
459
  '.ti-home': { text: '\ueac1', title: '\ueac1' }
460
+
461
+ // Bootstrap Icons styles
462
+ '.bi': { font: { fontFamily: 'bootstrap-icons' } }
463
+ '.bi-house-fill': { text: '\uf424', title: '\uf424' }
434
464
  ```
435
465
 
436
466
  ## Result
437
- <img src="https://raw.githubusercontent.com/macCesar/purgeTSS/master/assets/images/icon-fonts-tabler.png" width="375" alt="iOS Screen - Icon Fonts">
467
+ <img src="https://raw.githubusercontent.com/macCesar/purgeTSS/master/assets/images/icon-fonts-bootstrap-grid.png" width="375" alt="iOS Screen - Icon Fonts">
438
468
 
439
469
  ### Copying specific font vendors
440
470
  Use any of the following arguments to copy specific vendors:
441
471
 
442
472
  ```bash
443
- > purgetss fonts --vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons"
473
+ > purgetss fonts --vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons, bootstrapicons"
444
474
 
445
475
  # alias:
446
- > purgetss f -v=fa,md,li,bx,f7,ti
476
+ > purgetss f -v=fa,md,li,bx,f7,ti,bi
447
477
  ```
448
478
 
449
479
  Available aliases:
480
+ - bi, bootstrap, bootstrapicons = Bootstrap Icons
450
481
  - bx, box, boxicons = BoxIcons
451
- - li, line, lineicons = LineIcons
482
+ - f7, framework, framework7 = Framework7 Icons
452
483
  - fa, font, fontawesome = Font Awesome Icons
484
+ - li, line, lineicons = LineIcons
453
485
  - md, material, materialdesign = Material Design Icons
454
- - f7, framework, framework7 = Framework7 Icons
455
486
  - ti, tablericons, tabler = Tabler Icons
456
487
 
457
488
  ### Copying corresponding CommonJS Modules
@@ -459,22 +490,23 @@ You can use the `--modules` flag to copy the corresponding CommonJS modules into
459
490
 
460
491
  ```bash
461
492
  > purgetss fonts --modules
462
- > purgetss fonts --modules --vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons"
493
+ > purgetss fonts --modules --vendor="fontawesome, materialdesign, lineicons, boxicons, framework7, tablericons, bootstrapicons"
463
494
 
464
495
  # alias:
465
496
  > purgetss f -m
466
- > purgetss f -m -v=fa,md,li,bx,f7,ti
497
+ > purgetss f -m -v=fa,md,li,bx,f7,ti,bi
467
498
  ```
468
499
 
469
- Each library contains a CommonJS module exposing the UniCode strings for Font Awesome icons, Material Design Icons, Line Icons Boxicons and Framework7-Icons fonts.
500
+ Each library contains a CommonJS module exposing the UniCode strings for Font Awesome Icons, Material Design Icons, Line Icons, Boxicons, Framework7-Icons and Bootstrap Icons fonts.
470
501
 
471
502
  All prefixes are stripped out from their class names and are camelCased, for example:
472
503
 
473
- - **Line Icons**: `lni-flag` becomes `flag`
504
+ - **Bootstrap Icons** `bi-alarm-fill` becomes `alarmFill` or `bi-clock-fill` becomes `clockFill`.
474
505
  - **Font Awesome**: `fa-flag` becomes `flag`
506
+ - **Framework7 Icons** `f7-alarm_fill` becomes `alarmFill` or `f7-clock_fill` becomes `clockFill`.
507
+ - **Line Icons**: `lni-flag` becomes `flag`
475
508
  - **Material Design Icons**: `md-flag` becomes `flag`
476
509
  - **Tabler Icons** `ti-flag` becomes `flag` or `ti-cloud-download` becomes `cloudDownload`.
477
- - **Framework7 Icons** `f7-alarm_fill` becomes `alarmFill` or `f7-clock_fill` becomes `clockFill`.
478
510
  - **boxicons** have three sets of icons in the same font file: Regular, Solid and Logos, so we need to keep their prefixes:
479
511
 
480
512
  - **Regular**: `bx-flag` becomes `bxFlag`
Binary file
Binary file
Binary file
package/bin/purgetss CHANGED
@@ -24,7 +24,7 @@ program
24
24
  program
25
25
  .command('init')
26
26
  .alias('i')
27
- .description('Create a `config.js` file for your project')
27
+ .description('Create a `config.js` file for your project.')
28
28
  .help('Creates a minimal `./purgetss/config.js` file at the root of your project.')
29
29
  .action((args, options, logger) => {
30
30
  purgetss.init();
@@ -35,7 +35,8 @@ program
35
35
  .alias('c')
36
36
  .description('Creates a new Alloy Project with `purgetss` already configured.')
37
37
  .help('Creates a new Alloy Project with `purgetss` already configured.')
38
- .option('-v, --vendor <arguments>', 'Use any of the following arguments to copy specific vendors:\n fa = Font Awesome Icons\n md = Material Design Icons\n li = LineIcons\n bx = Boxicons\n f7 = Framework7 Icons\n ti = Tabler Icons')
38
+ .option('-t, --tailwind', 'To install Tailwind CSS in your project to work with `Tailwind CSS Intellisense`.')
39
+ .option('-v, --vendor <arguments>', 'Use any of the following arguments to copy specific vendors:\n fa = Font Awesome Icons\n md = Material Design Icons\n li = LineIcons\n bx = Boxicons\n f7 = Framework7 Icons\n ti = Tabler Icons\n bi = Bootstrap Icons')
39
40
  .argument('<name>', 'The name of the project')
40
41
  .action((args, options, logger) => {
41
42
  purgetss.create(args, options);
@@ -44,7 +45,7 @@ program
44
45
  program
45
46
  .command('build')
46
47
  .alias('b')
47
- .description('Build a custom `tailwind.tss` file')
48
+ .description('Build a custom `tailwind.tss` file.')
48
49
  .help('It will generate a new custom `tailwind.tss` file based on the attributes defined in `./purgetss/config.js`.')
49
50
  .action((args, options, logger) => {
50
51
  purgetss.buildCustom();
@@ -53,7 +54,7 @@ program
53
54
  program
54
55
  .command('watch')
55
56
  .alias('w')
56
- .description('Autorun `purgetss` every time you compile your project')
57
+ .description('Autorun `purgetss` every time you compile your project.')
57
58
  .help('Use this command if you want `purgetss` to autorun every time you compile your project. This is very useful in combination with `LiveView` because it will purge all your files every time you make a change, for example when adding or deleting styles in your Views.')
58
59
  .option('-o, --off', 'To turn off watch mode.')
59
60
  .action((args, options, logger) => {
@@ -63,9 +64,9 @@ program
63
64
  program
64
65
  .command('fonts')
65
66
  .alias('f')
66
- .description('Copy Font Awesome icons, Material Design Icons, LineIcons, Boxicons and Framework7-Icons Font files into your project')
67
- .help('Command to copy the Free versions of:\n\n • Font Awesome Icons ( Brands, Regular, Solid )\n • Material Design Icons\n • LineIcons\n • Boxicons\n • Framework7 Icons\n • Tabler Icons\n\nInto your projects’s app/assets/fonts/ folder.\n\nWith their names fixed to work with your app whether it is for iOS or for Android.')
68
- .option('-v, --vendor <arguments>', 'Use any of the following arguments to copy specific vendors:\n fa = Font Awesome Icons\n md = Material Design Icons\n li = LineIcons\n bx = Boxicons\n f7 = Framework7 Icons\n ti = Tabler Icons')
67
+ .description('Copy Font Awesome icons, Material Design Icons, LineIcons, Boxicons, Framework7-Icons and Bootstrap Icons Font files into your project.')
68
+ .help('Command to copy the Free versions of:\n\n • Font Awesome Icons ( Brands, Regular, Solid )\n • Material Design Icons\n • LineIcons\n • Boxicons\n • Framework7 Icons\n • Tabler Icons\n • Bootstrap Icons\n\nInto your projects’s app/assets/fonts/ folder.\n\nWith their names fixed to work with your app whether it is for iOS or for Android.')
69
+ .option('-v, --vendor <arguments>', 'Use any of the following arguments to copy specific vendors:\n fa = Font Awesome Icons\n md = Material Design Icons\n li = LineIcons\n bx = Boxicons\n f7 = Framework7 Icons\n ti = Tabler Icons\n bi = Bootstrap Icons')
69
70
  .option('-m, --modules', 'Use the `--modules` option to also copy the corresponding CommonJS module into `./app/lib/` folder.')
70
71
  .action((args, options, logger) => {
71
72
  purgetss.copyFonts(options);
@@ -83,7 +84,7 @@ program
83
84
  program
84
85
  .command('update')
85
86
  .alias('u')
86
- .description('Update PurgeTSS to the latest version')
87
+ .description('Update PurgeTSS to the latest version.')
87
88
  .help('Run auto-update regularly!\n\nWe constantly update PurgeTSS to add new features, to include the latest versions of Tailwind and for bug fixes.')
88
89
  .action((args, options, logger) => {
89
90
  logger.info(`${purgetss.colores.purgeLabel} Updating PurgeTSS to the latest version...`);