fomantic-ui 2.9.1-beta.16 → 2.9.1-beta.18

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 (252) hide show
  1. package/.eslintrc.js +109 -0
  2. package/.github/workflows/ci.yml +13 -3
  3. package/dist/components/accordion.css +1 -1
  4. package/dist/components/accordion.js +571 -598
  5. package/dist/components/accordion.min.css +1 -1
  6. package/dist/components/accordion.min.js +1 -1
  7. package/dist/components/ad.css +1 -1
  8. package/dist/components/ad.min.css +1 -1
  9. package/dist/components/api.js +1164 -1186
  10. package/dist/components/api.min.js +1 -1
  11. package/dist/components/breadcrumb.css +1 -1
  12. package/dist/components/breadcrumb.min.css +1 -1
  13. package/dist/components/button.css +1 -1
  14. package/dist/components/button.min.css +1 -1
  15. package/dist/components/calendar.css +1 -1
  16. package/dist/components/calendar.js +1897 -1818
  17. package/dist/components/calendar.min.css +1 -1
  18. package/dist/components/calendar.min.js +1 -1
  19. package/dist/components/card.css +1 -1
  20. package/dist/components/card.min.css +1 -1
  21. package/dist/components/checkbox.css +1 -1
  22. package/dist/components/checkbox.js +844 -841
  23. package/dist/components/checkbox.min.css +1 -1
  24. package/dist/components/checkbox.min.js +1 -1
  25. package/dist/components/comment.css +1 -1
  26. package/dist/components/comment.min.css +1 -1
  27. package/dist/components/container.css +3 -1
  28. package/dist/components/container.min.css +2 -2
  29. package/dist/components/dimmer.css +1 -1
  30. package/dist/components/dimmer.js +710 -737
  31. package/dist/components/dimmer.min.css +1 -1
  32. package/dist/components/dimmer.min.js +1 -1
  33. package/dist/components/divider.css +1 -1
  34. package/dist/components/divider.min.css +1 -1
  35. package/dist/components/dropdown.css +11 -8
  36. package/dist/components/dropdown.js +4163 -4234
  37. package/dist/components/dropdown.min.css +2 -2
  38. package/dist/components/dropdown.min.js +2 -2
  39. package/dist/components/embed.css +1 -1
  40. package/dist/components/embed.js +653 -675
  41. package/dist/components/embed.min.css +1 -1
  42. package/dist/components/embed.min.js +1 -1
  43. package/dist/components/feed.css +1 -1
  44. package/dist/components/feed.min.css +1 -1
  45. package/dist/components/flag.css +1 -1
  46. package/dist/components/flag.min.css +1 -1
  47. package/dist/components/flyout.css +6 -3
  48. package/dist/components/flyout.js +1466 -1467
  49. package/dist/components/flyout.min.css +2 -2
  50. package/dist/components/flyout.min.js +1 -1
  51. package/dist/components/form.css +1 -1
  52. package/dist/components/form.js +1981 -2004
  53. package/dist/components/form.min.css +1 -1
  54. package/dist/components/form.min.js +1 -1
  55. package/dist/components/grid.css +1 -1
  56. package/dist/components/grid.min.css +1 -1
  57. package/dist/components/header.css +1 -1
  58. package/dist/components/header.min.css +1 -1
  59. package/dist/components/icon.css +1 -1
  60. package/dist/components/icon.min.css +1 -1
  61. package/dist/components/image.css +1 -1
  62. package/dist/components/image.min.css +1 -1
  63. package/dist/components/input.css +1 -1
  64. package/dist/components/input.min.css +1 -1
  65. package/dist/components/item.css +1 -1
  66. package/dist/components/item.min.css +1 -1
  67. package/dist/components/label.css +1 -1
  68. package/dist/components/label.min.css +1 -1
  69. package/dist/components/list.css +1 -1
  70. package/dist/components/list.min.css +1 -1
  71. package/dist/components/loader.css +1 -1
  72. package/dist/components/loader.min.css +1 -1
  73. package/dist/components/message.css +1 -1
  74. package/dist/components/message.min.css +1 -1
  75. package/dist/components/modal.css +7 -1
  76. package/dist/components/modal.js +1493 -1487
  77. package/dist/components/modal.min.css +2 -2
  78. package/dist/components/modal.min.js +1 -1
  79. package/dist/components/nag.css +1 -1
  80. package/dist/components/nag.js +520 -529
  81. package/dist/components/nag.min.css +1 -1
  82. package/dist/components/nag.min.js +1 -1
  83. package/dist/components/placeholder.css +1 -1
  84. package/dist/components/placeholder.min.css +1 -1
  85. package/dist/components/popup.css +1 -1
  86. package/dist/components/popup.js +1439 -1456
  87. package/dist/components/popup.min.css +1 -1
  88. package/dist/components/popup.min.js +1 -1
  89. package/dist/components/progress.css +1 -1
  90. package/dist/components/progress.js +971 -997
  91. package/dist/components/progress.min.css +1 -1
  92. package/dist/components/progress.min.js +1 -1
  93. package/dist/components/rail.css +1 -1
  94. package/dist/components/rail.min.css +1 -1
  95. package/dist/components/rating.css +1 -1
  96. package/dist/components/rating.js +508 -524
  97. package/dist/components/rating.min.css +1 -1
  98. package/dist/components/rating.min.js +1 -1
  99. package/dist/components/reset.css +1 -1
  100. package/dist/components/reset.min.css +1 -1
  101. package/dist/components/reveal.css +1 -1
  102. package/dist/components/reveal.min.css +1 -1
  103. package/dist/components/search.css +3 -1
  104. package/dist/components/search.js +1500 -1534
  105. package/dist/components/search.min.css +2 -2
  106. package/dist/components/search.min.js +1 -1
  107. package/dist/components/segment.css +3 -1
  108. package/dist/components/segment.min.css +2 -2
  109. package/dist/components/shape.css +1 -1
  110. package/dist/components/shape.js +794 -809
  111. package/dist/components/shape.min.css +1 -1
  112. package/dist/components/shape.min.js +1 -1
  113. package/dist/components/sidebar.css +3 -1
  114. package/dist/components/sidebar.js +1079 -1104
  115. package/dist/components/sidebar.min.css +2 -2
  116. package/dist/components/sidebar.min.js +1 -1
  117. package/dist/components/site.css +1 -1
  118. package/dist/components/site.js +457 -472
  119. package/dist/components/site.min.css +1 -1
  120. package/dist/components/site.min.js +1 -1
  121. package/dist/components/slider.js +1289 -1311
  122. package/dist/components/slider.min.js +1 -1
  123. package/dist/components/state.js +641 -657
  124. package/dist/components/state.min.js +1 -1
  125. package/dist/components/statistic.css +1 -1
  126. package/dist/components/statistic.min.css +1 -1
  127. package/dist/components/step.css +1 -1
  128. package/dist/components/step.min.css +1 -1
  129. package/dist/components/sticky.css +1 -1
  130. package/dist/components/sticky.js +859 -903
  131. package/dist/components/sticky.min.css +1 -1
  132. package/dist/components/sticky.min.js +1 -1
  133. package/dist/components/tab.css +1 -1
  134. package/dist/components/tab.js +923 -963
  135. package/dist/components/tab.min.css +1 -1
  136. package/dist/components/tab.min.js +1 -1
  137. package/dist/components/table.css +5 -1
  138. package/dist/components/table.min.css +2 -2
  139. package/dist/components/text.css +1 -1
  140. package/dist/components/text.min.css +1 -1
  141. package/dist/components/toast.css +1 -1
  142. package/dist/components/toast.js +889 -891
  143. package/dist/components/toast.min.css +1 -1
  144. package/dist/components/toast.min.js +1 -1
  145. package/dist/components/transition.css +1 -1
  146. package/dist/components/transition.js +1043 -1077
  147. package/dist/components/transition.min.css +1 -1
  148. package/dist/components/transition.min.js +1 -1
  149. package/dist/components/visibility.js +1222 -1244
  150. package/dist/components/visibility.min.js +1 -1
  151. package/dist/semantic.css +84 -60
  152. package/dist/semantic.js +29033 -29475
  153. package/dist/semantic.min.css +2 -2
  154. package/dist/semantic.min.js +2 -2
  155. package/examples/assets/show-examples.js +13 -13
  156. package/gulpfile.js +9 -10
  157. package/package.json +5 -2
  158. package/scripts/nightly-version.js +81 -75
  159. package/src/definitions/behaviors/api.js +1163 -1185
  160. package/src/definitions/behaviors/form.js +1980 -2003
  161. package/src/definitions/behaviors/state.js +647 -663
  162. package/src/definitions/behaviors/visibility.js +1221 -1243
  163. package/src/definitions/collections/table.less +2 -0
  164. package/src/definitions/elements/container.less +1 -0
  165. package/src/definitions/elements/segment.less +1 -0
  166. package/src/definitions/globals/site.js +456 -471
  167. package/src/definitions/modules/accordion.js +570 -597
  168. package/src/definitions/modules/calendar.js +1896 -1817
  169. package/src/definitions/modules/checkbox.js +849 -846
  170. package/src/definitions/modules/dimmer.js +709 -736
  171. package/src/definitions/modules/dropdown.js +4162 -4233
  172. package/src/definitions/modules/dropdown.less +5 -8
  173. package/src/definitions/modules/embed.js +652 -674
  174. package/src/definitions/modules/flyout.js +1465 -1466
  175. package/src/definitions/modules/flyout.less +15 -12
  176. package/src/definitions/modules/modal.js +1492 -1486
  177. package/src/definitions/modules/modal.less +3 -0
  178. package/src/definitions/modules/nag.js +519 -528
  179. package/src/definitions/modules/popup.js +1438 -1455
  180. package/src/definitions/modules/progress.js +970 -996
  181. package/src/definitions/modules/rating.js +507 -523
  182. package/src/definitions/modules/search.js +1499 -1533
  183. package/src/definitions/modules/search.less +1 -0
  184. package/src/definitions/modules/shape.js +801 -816
  185. package/src/definitions/modules/sidebar.js +1078 -1103
  186. package/src/definitions/modules/sidebar.less +1 -0
  187. package/src/definitions/modules/slider.js +1288 -1310
  188. package/src/definitions/modules/sticky.js +875 -919
  189. package/src/definitions/modules/tab.js +922 -962
  190. package/src/definitions/modules/toast.js +888 -890
  191. package/src/definitions/modules/transition.js +1048 -1082
  192. package/src/themes/default/elements/container.variables +0 -7
  193. package/src/themes/default/elements/segment.variables +0 -7
  194. package/src/themes/default/globals/site.variables +7 -0
  195. package/src/themes/default/globals/variation.variables +1 -0
  196. package/tasks/admin/components/create.js +274 -276
  197. package/tasks/admin/components/init.js +123 -130
  198. package/tasks/admin/components/update.js +149 -157
  199. package/tasks/admin/distributions/create.js +184 -187
  200. package/tasks/admin/distributions/init.js +123 -130
  201. package/tasks/admin/distributions/update.js +145 -152
  202. package/tasks/admin/publish.js +5 -7
  203. package/tasks/admin/register.js +36 -38
  204. package/tasks/admin/release.js +8 -10
  205. package/tasks/build/assets.js +42 -39
  206. package/tasks/build/css.js +225 -216
  207. package/tasks/build/javascript.js +118 -113
  208. package/tasks/build.js +10 -10
  209. package/tasks/check-install.js +14 -16
  210. package/tasks/clean.js +5 -5
  211. package/tasks/collections/admin.js +34 -36
  212. package/tasks/collections/build.js +18 -20
  213. package/tasks/collections/docs.js +9 -11
  214. package/tasks/collections/install.js +9 -11
  215. package/tasks/collections/rtl.js +9 -11
  216. package/tasks/collections/various.js +8 -10
  217. package/tasks/config/admin/github.js +17 -17
  218. package/tasks/config/admin/oauth.example.js +4 -4
  219. package/tasks/config/admin/release.js +98 -98
  220. package/tasks/config/admin/templates/component-package.js +9 -10
  221. package/tasks/config/admin/templates/css-package.js +18 -20
  222. package/tasks/config/admin/templates/less-package.js +11 -13
  223. package/tasks/config/defaults.js +116 -116
  224. package/tasks/config/docs.js +23 -23
  225. package/tasks/config/npm/gulpfile.js +8 -9
  226. package/tasks/config/project/config.js +127 -134
  227. package/tasks/config/project/install.js +715 -713
  228. package/tasks/config/project/release.js +32 -38
  229. package/tasks/config/tasks.js +163 -164
  230. package/tasks/config/user.js +23 -29
  231. package/tasks/docs/build.js +97 -95
  232. package/tasks/docs/metadata.js +90 -96
  233. package/tasks/docs/serve.js +80 -81
  234. package/tasks/install.js +370 -378
  235. package/tasks/rtl/build.js +2 -2
  236. package/tasks/rtl/watch.js +2 -2
  237. package/tasks/version.js +4 -4
  238. package/tasks/watch.js +28 -30
  239. package/test/meteor/assets.js +10 -13
  240. package/test/meteor/fonts.js +12 -13
  241. package/test/modules/accordion.spec.js +6 -8
  242. package/test/modules/checkbox.spec.js +5 -7
  243. package/test/modules/dropdown.spec.js +5 -7
  244. package/test/modules/modal.spec.js +6 -8
  245. package/test/modules/module.spec.js +158 -178
  246. package/test/modules/popup.spec.js +5 -7
  247. package/test/modules/search.spec.js +5 -7
  248. package/test/modules/shape.spec.js +5 -7
  249. package/test/modules/sidebar.spec.js +5 -7
  250. package/test/modules/tab.spec.js +6 -8
  251. package/test/modules/transition.spec.js +5 -7
  252. package/test/modules/video.spec.js +5 -7
@@ -3,44 +3,44 @@
3
3
  *******************************/
4
4
 
5
5
  const
6
- gulp = require('gulp'),
7
-
8
- // node dependencies
9
- console = require('better-console'),
10
-
11
- // gulp dependencies
12
- autoprefixer = require('gulp-autoprefixer'),
13
- chmod = require('gulp-chmod'),
14
- concatCSS = require('gulp-concat-css'),
15
- dedupe = require('gulp-dedupe'),
16
- flatten = require('gulp-flatten'),
17
- gulpif = require('gulp-if'),
18
- header = require('gulp-header'),
19
- less = require('gulp-less'),
20
- minifyCSS = require('gulp-clean-css'),
21
- normalize = require('normalize-path'),
22
- plumber = require('gulp-plumber'),
23
- print = require('gulp-print').default,
24
- rename = require('gulp-rename'),
25
- replace = require('gulp-replace'),
26
- replaceExt = require('replace-ext'),
27
- rtlcss = require('gulp-rtlcss'),
28
-
29
- // config
30
- config = require('./../config/user'),
31
- docsConfig = require('./../config/docs'),
32
- tasks = require('../config/tasks'),
33
- install = require('../config/project/install'),
34
-
35
- // shorthand
36
- globs = config.globs,
37
- assets = config.paths.assets,
38
-
39
- banner = tasks.banner,
40
- filenames = tasks.filenames,
41
- comments = tasks.regExp.comments,
42
- log = tasks.log,
43
- settings = tasks.settings
6
+ gulp = require('gulp'),
7
+
8
+ // node dependencies
9
+ console = require('better-console'),
10
+
11
+ // gulp dependencies
12
+ autoprefixer = require('gulp-autoprefixer'),
13
+ chmod = require('gulp-chmod'),
14
+ concatCSS = require('gulp-concat-css'),
15
+ dedupe = require('gulp-dedupe'),
16
+ flatten = require('gulp-flatten'),
17
+ gulpif = require('gulp-if'),
18
+ header = require('gulp-header'),
19
+ less = require('gulp-less'),
20
+ minifyCSS = require('gulp-clean-css'),
21
+ normalize = require('normalize-path'),
22
+ plumber = require('gulp-plumber'),
23
+ print = require('gulp-print').default,
24
+ rename = require('gulp-rename'),
25
+ replace = require('gulp-replace'),
26
+ replaceExt = require('replace-ext'),
27
+ rtlcss = require('gulp-rtlcss'),
28
+
29
+ // config
30
+ config = require('../config/user'),
31
+ docsConfig = require('../config/docs'),
32
+ tasks = require('../config/tasks'),
33
+ install = require('../config/project/install'),
34
+
35
+ // shorthand
36
+ globs = config.globs,
37
+ assets = config.paths.assets,
38
+
39
+ banner = tasks.banner,
40
+ filenames = tasks.filenames,
41
+ comments = tasks.regExp.comments,
42
+ log = tasks.log,
43
+ settings = tasks.settings
44
44
  ;
45
45
 
46
46
  /**
@@ -53,33 +53,35 @@ const
53
53
  * @return {*}
54
54
  */
55
55
  function build(src, type, compress, config, opts) {
56
- let fileExtension;
57
- if (type === 'rtl' && compress) {
58
- fileExtension = settings.rename.rtlMinCSS;
59
- } else if (type === 'rtl') {
60
- fileExtension = settings.rename.rtlCSS;
61
- } else if (compress) {
62
- fileExtension = settings.rename.minCSS;
63
- }
64
-
65
- return gulp.src(src, opts)
66
- .pipe(plumber(settings.plumber.less))
67
- .pipe(less(settings.less))
68
- .pipe(autoprefixer(settings.prefix))
69
- .pipe(gulpif(type === 'rtl', rtlcss()))
70
- .pipe(replace(comments.variables.in, comments.variables.out))
71
- .pipe(replace(comments.license.in, comments.license.out))
72
- .pipe(replace(comments.large.in, comments.large.out))
73
- .pipe(replace(comments.small.in, comments.small.out))
74
- .pipe(replace(comments.tiny.in, comments.tiny.out))
75
- .pipe(flatten())
76
- .pipe(replace(config.paths.assets.source,
77
- compress ? config.paths.assets.compressed : config.paths.assets.uncompressed))
78
- .pipe(gulpif(compress, minifyCSS(settings.minify)))
79
- .pipe(gulpif(fileExtension, rename(fileExtension)))
80
- .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
81
- .pipe(gulp.dest(compress ? config.paths.output.compressed : config.paths.output.uncompressed))
82
- .pipe(print(log.created))
56
+ let fileExtension;
57
+ if (type === 'rtl' && compress) {
58
+ fileExtension = settings.rename.rtlMinCSS;
59
+ } else if (type === 'rtl') {
60
+ fileExtension = settings.rename.rtlCSS;
61
+ } else if (compress) {
62
+ fileExtension = settings.rename.minCSS;
63
+ }
64
+
65
+ return gulp.src(src, opts)
66
+ .pipe(plumber(settings.plumber.less))
67
+ .pipe(less(settings.less))
68
+ .pipe(autoprefixer(settings.prefix))
69
+ .pipe(gulpif(type === 'rtl', rtlcss()))
70
+ .pipe(replace(comments.variables.in, comments.variables.out))
71
+ .pipe(replace(comments.license.in, comments.license.out))
72
+ .pipe(replace(comments.large.in, comments.large.out))
73
+ .pipe(replace(comments.small.in, comments.small.out))
74
+ .pipe(replace(comments.tiny.in, comments.tiny.out))
75
+ .pipe(flatten())
76
+ .pipe(replace(
77
+ config.paths.assets.source,
78
+ compress ? config.paths.assets.compressed : config.paths.assets.uncompressed
79
+ ))
80
+ .pipe(gulpif(compress, minifyCSS(settings.minify)))
81
+ .pipe(gulpif(fileExtension, rename(fileExtension)))
82
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
83
+ .pipe(gulp.dest(compress ? config.paths.output.compressed : config.paths.output.uncompressed))
84
+ .pipe(print(log.created))
83
85
  ;
84
86
  }
85
87
 
@@ -89,114 +91,118 @@ function build(src, type, compress, config, opts) {
89
91
  * @param {boolean} compress - should the output be compressed
90
92
  */
91
93
  function pack(type, compress) {
92
- const output = type === 'docs' ? docsConfig.paths.output : config.paths.output;
93
- const ignoredGlobs = type === 'rtl' ? globs.ignoredRTL + '.rtl.css' : globs.ignored + '.css';
94
-
95
- let concatenatedCSS;
96
- if (type === 'rtl') {
97
- concatenatedCSS = compress ? filenames.concatenatedMinifiedRTLCSS : filenames.concatenatedRTLCSS;
98
- } else {
99
- concatenatedCSS = compress ? filenames.concatenatedMinifiedCSS : filenames.concatenatedCSS;
100
- }
101
-
102
- let src = output.uncompressed + '/**/' + globs.components + ignoredGlobs;
103
- if (globs.components.indexOf('table') < 0 && globs.components.indexOf('tab') > 0) {
104
- src = [src, '!' + output.uncompressed + '/**/table.css'];
105
- }
106
-
107
- return gulp.src(src)
108
- .pipe(plumber())
109
- .pipe(dedupe())
110
- .pipe(replace(assets.uncompressed, assets.packaged))
111
- .pipe(concatCSS(concatenatedCSS, settings.concatCSS))
112
- .pipe(gulpif(config.stripHeaders, replace(comments.header.in, comments.header.out)))
113
- .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
114
- .pipe(gulpif(compress, minifyCSS(settings.concatMinify)))
115
- .pipe(header(banner, settings.header))
116
- .pipe(gulp.dest(output.packaged))
117
- .pipe(print(log.created))
94
+ const output = type === 'docs' ? docsConfig.paths.output : config.paths.output;
95
+ const ignoredGlobs = type === 'rtl' ? globs.ignoredRTL + '.rtl.css' : globs.ignored + '.css';
96
+
97
+ let concatenatedCSS;
98
+ if (type === 'rtl') {
99
+ concatenatedCSS = compress ? filenames.concatenatedMinifiedRTLCSS : filenames.concatenatedRTLCSS;
100
+ } else {
101
+ concatenatedCSS = compress ? filenames.concatenatedMinifiedCSS : filenames.concatenatedCSS;
102
+ }
103
+
104
+ let src = output.uncompressed + '/**/' + globs.components + ignoredGlobs;
105
+ if (globs.components.indexOf('table') < 0 && globs.components.indexOf('tab') > 0) {
106
+ src = [src, '!' + output.uncompressed + '/**/table.css'];
107
+ }
108
+
109
+ return gulp.src(src)
110
+ .pipe(plumber())
111
+ .pipe(dedupe())
112
+ .pipe(replace(assets.uncompressed, assets.packaged))
113
+ .pipe(concatCSS(concatenatedCSS, settings.concatCSS))
114
+ .pipe(gulpif(config.stripHeaders, replace(comments.header.in, comments.header.out)))
115
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
116
+ .pipe(gulpif(compress, minifyCSS(settings.concatMinify)))
117
+ .pipe(header(banner, settings.header))
118
+ .pipe(gulp.dest(output.packaged))
119
+ .pipe(print(log.created))
118
120
  ;
119
121
  }
120
122
 
121
123
  function buildCSS(src, type, config, opts, callback) {
122
- if (!install.isSetup()) {
123
- console.error('Cannot build CSS files. Run "gulp install" to set-up Semantic');
124
- callback();
125
- return;
126
- }
127
-
128
- if (callback === undefined) {
129
- callback = opts;
130
- opts = config;
131
- config = type;
132
- type = src;
133
- src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
134
- }
135
-
136
- if (globs.individuals !== undefined && typeof src === 'string') {
137
- const components = config.globs.components.replace(/[{}]/g,'') + ',' + config.globs.individuals.replace(/[{}]/g,'');
138
-
139
- src = config.paths.source.definitions + '/**/{' + components + '}.less';
140
- }
141
-
142
- const buildUncompressed = () => build(src, type, false, config, opts);
143
- buildUncompressed.displayName = 'Building uncompressed CSS';
144
-
145
- const buildCompressed = () => build(src, type, true, config, opts);
146
- buildCompressed.displayName = 'Building compressed CSS';
147
-
148
- const packUncompressed = () => pack(type, false);
149
- packUncompressed.displayName = 'Packing uncompressed CSS';
150
-
151
- const packCompressed = () => pack(type, true);
152
- packCompressed.displayName = 'Packing compressed CSS';
153
-
154
- gulp.parallel(
155
- gulp.series(
156
- buildUncompressed,
157
- gulp.parallel(packUncompressed, packCompressed)
158
- ),
159
- gulp.series(buildCompressed)
160
- )(callback);
124
+ if (!install.isSetup()) {
125
+ console.error('Cannot build CSS files. Run "gulp install" to set-up Semantic');
126
+ callback();
127
+
128
+ return;
129
+ }
130
+
131
+ if (callback === undefined) {
132
+ callback = opts;
133
+ opts = config;
134
+ config = type;
135
+ type = src;
136
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
137
+ }
138
+
139
+ if (globs.individuals !== undefined && typeof src === 'string') {
140
+ const components = config.globs.components.replace(/[{}]/g, '') + ',' + config.globs.individuals.replace(/[{}]/g, '');
141
+
142
+ src = config.paths.source.definitions + '/**/{' + components + '}.less';
143
+ }
144
+
145
+ const buildUncompressed = () => build(src, type, false, config, opts);
146
+ buildUncompressed.displayName = 'Building uncompressed CSS';
147
+
148
+ const buildCompressed = () => build(src, type, true, config, opts);
149
+ buildCompressed.displayName = 'Building compressed CSS';
150
+
151
+ const packUncompressed = () => pack(type, false);
152
+ packUncompressed.displayName = 'Packing uncompressed CSS';
153
+
154
+ const packCompressed = () => pack(type, true);
155
+ packCompressed.displayName = 'Packing compressed CSS';
156
+
157
+ gulp.parallel(
158
+ gulp.series(
159
+ buildUncompressed,
160
+ gulp.parallel(packUncompressed, packCompressed)
161
+ ),
162
+ gulp.series(buildCompressed)
163
+ )(callback);
161
164
  }
162
165
 
163
166
  function rtlAndNormal(src, callback) {
164
- if (callback === undefined) {
165
- callback = src;
166
- src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
167
- }
168
-
169
- const rtl = (callback) => buildCSS(src, 'rtl', config, {}, callback);
170
- rtl.displayName = "CSS Right-To-Left";
171
- const css = (callback) => buildCSS(src, 'default', config, {}, callback);
172
- css.displayName = "CSS";
173
-
174
- if (config.rtl === true || config.rtl === 'Yes') {
175
- rtl(callback);
176
- } else if (config.rtl === 'both') {
177
- gulp.series(rtl, css)(callback);
178
- } else {
179
- css(callback);
180
- }
167
+ if (callback === undefined) {
168
+ callback = src;
169
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
170
+ }
171
+
172
+ const rtl = (callback) => buildCSS(src, 'rtl', config, {}, callback);
173
+ rtl.displayName = 'CSS Right-To-Left';
174
+ const css = (callback) => buildCSS(src, 'default', config, {}, callback);
175
+ css.displayName = 'CSS';
176
+
177
+ if (config.rtl === true || config.rtl === 'Yes') {
178
+ rtl(callback);
179
+ } else if (config.rtl === 'both') {
180
+ gulp.series(rtl, css)(callback);
181
+ } else {
182
+ css(callback);
183
+ }
181
184
  }
182
185
 
183
186
  function docs(src, callback) {
184
- if (callback === undefined) {
185
- callback = src;
186
- src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
187
- }
187
+ if (callback === undefined) {
188
+ callback = src;
189
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
190
+ }
188
191
 
189
- const func = (callback) => buildCSS(src, 'docs', config, {}, callback);
190
- func.displayName = "CSS Docs";
192
+ const func = (callback) => buildCSS(src, 'docs', config, {}, callback);
193
+ func.displayName = 'CSS Docs';
191
194
 
192
- func(callback);
195
+ func(callback);
193
196
  }
194
197
 
195
198
  // Default tasks
196
199
  module.exports = rtlAndNormal;
197
200
 
198
201
  // We keep the changed files in an array to call build with all of them at the same time
199
- let timeout, files = [];
202
+ let
203
+ timeout,
204
+ files = []
205
+ ;
200
206
 
201
207
  /**
202
208
  * Watch changes in CSS files and call the correct build pipe
@@ -204,68 +210,71 @@ let timeout, files = [];
204
210
  * @param config
205
211
  */
206
212
  module.exports.watch = function (type, config) {
207
- const method = type === 'docs' ? docs : rtlAndNormal;
208
-
209
- // Watch theme.config file
210
- gulp.watch([
211
- normalize(config.paths.source.config),
212
- normalize(config.paths.source.site + '/**/site.variables'),
213
- normalize(config.paths.source.themes + '/**/site.variables')
214
- ])
215
- .on('all', function () {
216
- // Clear timeout and reset files
217
- timeout && clearTimeout(timeout);
218
- files = [];
219
- return gulp.series(method)();
220
- });
221
-
222
- // Watch any less / overrides / variables files
223
- gulp.watch([
224
- normalize(config.paths.source.definitions + '/**/*.less'),
225
- normalize(config.paths.source.site + '/**/*.{overrides,variables}'),
226
- normalize(config.paths.source.themes + '/**/*.{overrides,variables}')
227
- ])
228
- .on('all', function (event, path) {
229
- // We don't handle deleted files yet
230
- if (event === 'unlink' || event === 'unlinkDir') {
231
- return;
232
- }
233
-
234
- // Clear timeout
235
- timeout && clearTimeout(timeout);
213
+ const method = type === 'docs' ? docs : rtlAndNormal;
214
+
215
+ // Watch theme.config file
216
+ gulp.watch([
217
+ normalize(config.paths.source.config),
218
+ normalize(config.paths.source.site + '/**/site.variables'),
219
+ normalize(config.paths.source.themes + '/**/site.variables'),
220
+ ])
221
+ .on('all', function () {
222
+ // Clear timeout and reset files
223
+ timeout && clearTimeout(timeout);
224
+ files = [];
225
+
226
+ return gulp.series(method)();
227
+ })
228
+ ;
236
229
 
237
- // Determine which LESS file has to be recompiled
238
- let lessPath;
239
- if(path.indexOf('site.variables') !== -1) {
240
- return;
241
- } else if (path.indexOf(config.paths.source.themes) !== -1) {
242
- console.log('Change detected in packaged theme');
243
- lessPath = replaceExt(path, '.less');
244
- lessPath = lessPath.replace(tasks.regExp.theme, config.paths.source.definitions);
245
- } else if (path.indexOf(config.paths.source.site) !== -1) {
246
- console.log('Change detected in site theme');
247
- lessPath = replaceExt(path, '.less');
248
- lessPath = lessPath.replace(config.paths.source.site, config.paths.source.definitions);
249
- } else {
250
- console.log('Change detected in definition');
251
- lessPath = path;
252
- }
253
-
254
- // Add file to internal changed files array
255
- if (!files.includes(lessPath)) {
256
- files.push(lessPath);
257
- }
258
-
259
- // Update timeout
260
- timeout = setTimeout(() => {
261
- // Copy files to build in another array
262
- const buildFiles = [...files];
263
- // Call method
264
- gulp.series((callback) => method(buildFiles, callback))();
265
- // Reset internal changed files array
266
- files = [];
267
- }, 1000);
268
- });
230
+ // Watch any less / overrides / variables files
231
+ gulp.watch([
232
+ normalize(config.paths.source.definitions + '/**/*.less'),
233
+ normalize(config.paths.source.site + '/**/*.{overrides,variables}'),
234
+ normalize(config.paths.source.themes + '/**/*.{overrides,variables}'),
235
+ ])
236
+ .on('all', function (event, path) {
237
+ // We don't handle deleted files yet
238
+ if (event === 'unlink' || event === 'unlinkDir') {
239
+ return;
240
+ }
241
+
242
+ // Clear timeout
243
+ timeout && clearTimeout(timeout);
244
+
245
+ // Determine which LESS file has to be recompiled
246
+ let lessPath;
247
+ if (path.indexOf('site.variables') !== -1) {
248
+ return;
249
+ } else if (path.indexOf(config.paths.source.themes) !== -1) {
250
+ console.log('Change detected in packaged theme');
251
+ lessPath = replaceExt(path, '.less');
252
+ lessPath = lessPath.replace(tasks.regExp.theme, config.paths.source.definitions);
253
+ } else if (path.indexOf(config.paths.source.site) !== -1) {
254
+ console.log('Change detected in site theme');
255
+ lessPath = replaceExt(path, '.less');
256
+ lessPath = lessPath.replace(config.paths.source.site, config.paths.source.definitions);
257
+ } else {
258
+ console.log('Change detected in definition');
259
+ lessPath = path;
260
+ }
261
+
262
+ // Add file to internal changed files array
263
+ if (!files.includes(lessPath)) {
264
+ files.push(lessPath);
265
+ }
266
+
267
+ // Update timeout
268
+ timeout = setTimeout(() => {
269
+ // Copy files to build in another array
270
+ const buildFiles = [...files];
271
+ // Call method
272
+ gulp.series((callback) => method(buildFiles, callback))();
273
+ // Reset internal changed files array
274
+ files = [];
275
+ }, 1000);
276
+ })
277
+ ;
269
278
  };
270
279
 
271
280
  // Expose build css method