fomantic-ui 2.9.1-beta.2 → 2.9.1-beta.20

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 (339) hide show
  1. package/.eslintrc.js +110 -0
  2. package/.github/workflows/ci.yml +14 -4
  3. package/.stylelintrc.js +46 -0
  4. package/dist/components/accordion.css +19 -26
  5. package/dist/components/accordion.js +568 -595
  6. package/dist/components/accordion.min.css +1 -1
  7. package/dist/components/accordion.min.js +2 -2
  8. package/dist/components/ad.css +31 -41
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +1161 -1179
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +71 -106
  15. package/dist/components/button.min.css +1 -1
  16. package/dist/components/calendar.css +18 -16
  17. package/dist/components/calendar.js +1895 -1809
  18. package/dist/components/calendar.min.css +2 -2
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +83 -115
  21. package/dist/components/card.min.css +1 -1
  22. package/dist/components/checkbox.css +47 -64
  23. package/dist/components/checkbox.js +842 -841
  24. package/dist/components/checkbox.min.css +1 -1
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +37 -51
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +6 -5
  29. package/dist/components/container.min.css +2 -2
  30. package/dist/components/dimmer.css +31 -41
  31. package/dist/components/dimmer.js +708 -737
  32. package/dist/components/dimmer.min.css +1 -1
  33. package/dist/components/dimmer.min.js +2 -2
  34. package/dist/components/divider.css +32 -44
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +129 -166
  37. package/dist/components/dropdown.js +4161 -4234
  38. package/dist/components/dropdown.min.css +2 -2
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +13 -19
  41. package/dist/components/embed.js +651 -675
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/emoji.css +7 -6
  45. package/dist/components/feed.css +24 -32
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +5 -3
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +44 -58
  50. package/dist/components/flyout.js +1464 -1465
  51. package/dist/components/flyout.min.css +2 -2
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +85 -111
  54. package/dist/components/form.js +1979 -2004
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +70 -96
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +47 -65
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +45 -66
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +32 -42
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +182 -65
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +55 -77
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +68 -91
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +44 -59
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +16 -22
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +126 -186
  76. package/dist/components/message.css +25 -35
  77. package/dist/components/message.min.css +1 -1
  78. package/dist/components/modal.css +39 -40
  79. package/dist/components/modal.js +1491 -1485
  80. package/dist/components/modal.min.css +2 -2
  81. package/dist/components/modal.min.js +2 -2
  82. package/dist/components/nag.css +21 -28
  83. package/dist/components/nag.js +518 -526
  84. package/dist/components/nag.min.css +2 -2
  85. package/dist/components/nag.min.js +2 -2
  86. package/dist/components/placeholder.css +10 -12
  87. package/dist/components/placeholder.min.css +1 -1
  88. package/dist/components/popup.css +352 -59
  89. package/dist/components/popup.js +1437 -1456
  90. package/dist/components/popup.min.css +2 -2
  91. package/dist/components/popup.min.js +2 -2
  92. package/dist/components/progress.css +29 -39
  93. package/dist/components/progress.js +969 -997
  94. package/dist/components/progress.min.css +1 -1
  95. package/dist/components/progress.min.js +2 -2
  96. package/dist/components/rail.css +15 -20
  97. package/dist/components/rail.min.css +1 -1
  98. package/dist/components/rating.css +9 -13
  99. package/dist/components/rating.js +505 -523
  100. package/dist/components/rating.min.css +1 -1
  101. package/dist/components/rating.min.js +2 -2
  102. package/dist/components/reset.css +1 -1
  103. package/dist/components/reset.min.css +1 -1
  104. package/dist/components/reveal.css +19 -26
  105. package/dist/components/reveal.min.css +1 -1
  106. package/dist/components/search.css +43 -58
  107. package/dist/components/search.js +1498 -1534
  108. package/dist/components/search.min.css +2 -2
  109. package/dist/components/search.min.js +2 -2
  110. package/dist/components/segment.css +64 -83
  111. package/dist/components/segment.min.css +2 -2
  112. package/dist/components/shape.css +10 -14
  113. package/dist/components/shape.js +792 -809
  114. package/dist/components/shape.min.css +1 -1
  115. package/dist/components/shape.min.js +2 -2
  116. package/dist/components/sidebar.css +43 -58
  117. package/dist/components/sidebar.js +1071 -1098
  118. package/dist/components/sidebar.min.css +2 -2
  119. package/dist/components/sidebar.min.js +2 -2
  120. package/dist/components/site.css +5 -5
  121. package/dist/components/site.js +462 -476
  122. package/dist/components/site.min.css +1 -1
  123. package/dist/components/site.min.js +2 -2
  124. package/dist/components/slider.css +27 -37
  125. package/dist/components/slider.js +1287 -1306
  126. package/dist/components/slider.min.js +2 -2
  127. package/dist/components/state.js +639 -657
  128. package/dist/components/state.min.js +2 -2
  129. package/dist/components/statistic.css +32 -41
  130. package/dist/components/statistic.min.css +2 -2
  131. package/dist/components/step.css +26 -35
  132. package/dist/components/step.min.css +1 -1
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +857 -902
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +2 -2
  137. package/dist/components/tab.css +6 -8
  138. package/dist/components/tab.js +922 -963
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +2 -2
  141. package/dist/components/table.css +93 -119
  142. package/dist/components/table.min.css +2 -2
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +4 -6
  146. package/dist/components/toast.js +886 -887
  147. package/dist/components/toast.min.css +1 -1
  148. package/dist/components/toast.min.js +2 -2
  149. package/dist/components/transition.css +150 -3
  150. package/dist/components/transition.js +1041 -1077
  151. package/dist/components/transition.min.css +2 -2
  152. package/dist/components/transition.min.js +2 -2
  153. package/dist/components/visibility.js +1220 -1244
  154. package/dist/components/visibility.min.js +2 -2
  155. package/dist/semantic.css +2529 -1778
  156. package/dist/semantic.js +28928 -29383
  157. package/dist/semantic.min.css +2 -2
  158. package/dist/semantic.min.js +2 -2
  159. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  160. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  161. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  162. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  163. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  164. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  165. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  168. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  172. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  175. package/examples/assets/show-examples.js +13 -13
  176. package/gulpfile.js +9 -10
  177. package/package.json +13 -8
  178. package/scripts/nightly-version.js +81 -75
  179. package/src/definitions/behaviors/api.js +1162 -1180
  180. package/src/definitions/behaviors/form.js +1978 -2003
  181. package/src/definitions/behaviors/state.js +645 -663
  182. package/src/definitions/behaviors/visibility.js +1219 -1243
  183. package/src/definitions/collections/breadcrumb.less +41 -44
  184. package/src/definitions/collections/form.less +869 -879
  185. package/src/definitions/collections/grid.less +1690 -1695
  186. package/src/definitions/collections/menu.less +1493 -1503
  187. package/src/definitions/collections/message.less +292 -295
  188. package/src/definitions/collections/table.less +1616 -1620
  189. package/src/definitions/elements/button.less +1721 -1743
  190. package/src/definitions/elements/container.less +209 -209
  191. package/src/definitions/elements/divider.less +205 -206
  192. package/src/definitions/elements/emoji.less +38 -44
  193. package/src/definitions/elements/flag.less +44 -46
  194. package/src/definitions/elements/header.less +337 -345
  195. package/src/definitions/elements/icon.less +516 -443
  196. package/src/definitions/elements/image.less +221 -225
  197. package/src/definitions/elements/input.less +663 -659
  198. package/src/definitions/elements/label.less +803 -793
  199. package/src/definitions/elements/list.less +809 -809
  200. package/src/definitions/elements/loader.less +272 -266
  201. package/src/definitions/elements/placeholder.less +171 -168
  202. package/src/definitions/elements/rail.less +91 -91
  203. package/src/definitions/elements/reveal.less +192 -196
  204. package/src/definitions/elements/segment.less +743 -746
  205. package/src/definitions/elements/step.less +425 -433
  206. package/src/definitions/elements/text.less +32 -34
  207. package/src/definitions/globals/reset.less +9 -6
  208. package/src/definitions/globals/site.js +461 -475
  209. package/src/definitions/globals/site.less +106 -108
  210. package/src/definitions/modules/accordion.js +567 -594
  211. package/src/definitions/modules/accordion.less +242 -246
  212. package/src/definitions/modules/calendar.js +1894 -1808
  213. package/src/definitions/modules/calendar.less +98 -95
  214. package/src/definitions/modules/checkbox.js +841 -840
  215. package/src/definitions/modules/checkbox.less +536 -542
  216. package/src/definitions/modules/dimmer.js +707 -736
  217. package/src/definitions/modules/dimmer.less +300 -297
  218. package/src/definitions/modules/dropdown.js +4160 -4233
  219. package/src/definitions/modules/dropdown.less +1577 -1589
  220. package/src/definitions/modules/embed.js +650 -674
  221. package/src/definitions/modules/embed.less +81 -82
  222. package/src/definitions/modules/flyout.js +1463 -1464
  223. package/src/definitions/modules/flyout.less +445 -451
  224. package/src/definitions/modules/modal.js +1490 -1484
  225. package/src/definitions/modules/modal.less +459 -459
  226. package/src/definitions/modules/nag.js +517 -525
  227. package/src/definitions/modules/nag.less +134 -138
  228. package/src/definitions/modules/popup.js +1436 -1455
  229. package/src/definitions/modules/popup.less +742 -687
  230. package/src/definitions/modules/progress.js +968 -996
  231. package/src/definitions/modules/progress.less +521 -494
  232. package/src/definitions/modules/rating.js +504 -522
  233. package/src/definitions/modules/rating.less +94 -101
  234. package/src/definitions/modules/search.js +1497 -1533
  235. package/src/definitions/modules/search.less +375 -382
  236. package/src/definitions/modules/shape.js +791 -808
  237. package/src/definitions/modules/shape.less +71 -76
  238. package/src/definitions/modules/sidebar.js +1070 -1097
  239. package/src/definitions/modules/sidebar.less +463 -472
  240. package/src/definitions/modules/slider.js +1286 -1305
  241. package/src/definitions/modules/slider.less +307 -308
  242. package/src/definitions/modules/sticky.js +873 -918
  243. package/src/definitions/modules/sticky.less +21 -23
  244. package/src/definitions/modules/tab.js +921 -962
  245. package/src/definitions/modules/tab.less +51 -52
  246. package/src/definitions/modules/toast.js +885 -886
  247. package/src/definitions/modules/toast.less +584 -586
  248. package/src/definitions/modules/transition.js +1040 -1076
  249. package/src/definitions/modules/transition.less +62 -28
  250. package/src/definitions/views/ad.less +206 -206
  251. package/src/definitions/views/card.less +968 -970
  252. package/src/definitions/views/comment.less +190 -198
  253. package/src/definitions/views/feed.less +220 -224
  254. package/src/definitions/views/item.less +436 -446
  255. package/src/definitions/views/statistic.less +271 -277
  256. package/src/theme.less +29 -32
  257. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  258. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  259. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  260. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  261. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  262. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  263. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  264. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  265. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  266. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  267. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  268. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  269. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  270. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  271. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  272. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  273. package/src/themes/default/elements/container.variables +0 -7
  274. package/src/themes/default/elements/icon.variables +18 -0
  275. package/src/themes/default/elements/segment.variables +0 -7
  276. package/src/themes/default/globals/colors.less +589 -589
  277. package/src/themes/default/globals/site.variables +8 -0
  278. package/src/themes/default/globals/variation.variables +13 -1
  279. package/src/themes/default/modules/calendar.variables +2 -0
  280. package/src/themes/default/modules/nag.variables +1 -1
  281. package/src/themes/default/modules/popup.variables +2 -0
  282. package/src/themes/default/modules/transition.variables +8 -1
  283. package/tasks/admin/components/create.js +274 -276
  284. package/tasks/admin/components/init.js +123 -130
  285. package/tasks/admin/components/update.js +149 -157
  286. package/tasks/admin/distributions/create.js +184 -187
  287. package/tasks/admin/distributions/init.js +123 -130
  288. package/tasks/admin/distributions/update.js +145 -152
  289. package/tasks/admin/publish.js +5 -7
  290. package/tasks/admin/register.js +36 -38
  291. package/tasks/admin/release.js +8 -10
  292. package/tasks/build/assets.js +42 -39
  293. package/tasks/build/css.js +225 -216
  294. package/tasks/build/javascript.js +118 -113
  295. package/tasks/build.js +10 -10
  296. package/tasks/check-install.js +14 -16
  297. package/tasks/clean.js +5 -5
  298. package/tasks/collections/admin.js +34 -36
  299. package/tasks/collections/build.js +18 -20
  300. package/tasks/collections/docs.js +9 -11
  301. package/tasks/collections/install.js +9 -11
  302. package/tasks/collections/rtl.js +9 -11
  303. package/tasks/collections/various.js +8 -10
  304. package/tasks/config/admin/github.js +17 -17
  305. package/tasks/config/admin/oauth.example.js +4 -4
  306. package/tasks/config/admin/release.js +98 -98
  307. package/tasks/config/admin/templates/component-package.js +9 -10
  308. package/tasks/config/admin/templates/css-package.js +18 -20
  309. package/tasks/config/admin/templates/less-package.js +11 -13
  310. package/tasks/config/defaults.js +116 -114
  311. package/tasks/config/docs.js +23 -23
  312. package/tasks/config/npm/gulpfile.js +8 -9
  313. package/tasks/config/project/config.js +127 -134
  314. package/tasks/config/project/install.js +715 -713
  315. package/tasks/config/project/release.js +32 -38
  316. package/tasks/config/tasks.js +165 -156
  317. package/tasks/config/user.js +23 -26
  318. package/tasks/docs/build.js +97 -95
  319. package/tasks/docs/metadata.js +90 -96
  320. package/tasks/docs/serve.js +80 -81
  321. package/tasks/install.js +370 -378
  322. package/tasks/rtl/build.js +2 -2
  323. package/tasks/rtl/watch.js +2 -2
  324. package/tasks/version.js +4 -4
  325. package/tasks/watch.js +28 -30
  326. package/test/meteor/assets.js +10 -13
  327. package/test/meteor/fonts.js +12 -13
  328. package/test/modules/accordion.spec.js +6 -8
  329. package/test/modules/checkbox.spec.js +5 -7
  330. package/test/modules/dropdown.spec.js +5 -7
  331. package/test/modules/modal.spec.js +6 -8
  332. package/test/modules/module.spec.js +158 -178
  333. package/test/modules/popup.spec.js +5 -7
  334. package/test/modules/search.spec.js +5 -7
  335. package/test/modules/shape.spec.js +5 -7
  336. package/test/modules/sidebar.spec.js +5 -7
  337. package/test/modules/tab.spec.js +6 -8
  338. package/test/modules/transition.spec.js +5 -7
  339. package/test/modules/video.spec.js +5 -7
@@ -15,305 +15,303 @@
15
15
  */
16
16
 
17
17
  var
18
- gulp = require('gulp'),
18
+ gulp = require('gulp'),
19
19
 
20
- // node dependencies
21
- fs = require('fs'),
22
- path = require('path'),
20
+ // node dependencies
21
+ fs = require('fs'),
22
+ path = require('path'),
23
23
 
24
- // admin dependencies
25
- concatFileNames = require('gulp-concat-filenames'),
26
- flatten = require('gulp-flatten'),
27
- jsonEditor = require('gulp-json-editor'),
28
- plumber = require('gulp-plumber'),
29
- rename = require('gulp-rename'),
30
- replace = require('gulp-replace'),
31
- tap = require('gulp-tap'),
24
+ // admin dependencies
25
+ concatFileNames = require('gulp-concat-filenames'),
26
+ flatten = require('gulp-flatten'),
27
+ jsonEditor = require('gulp-json-editor'),
28
+ plumber = require('gulp-plumber'),
29
+ rename = require('gulp-rename'),
30
+ replace = require('gulp-replace'),
31
+ tap = require('gulp-tap'),
32
32
 
33
- // config
34
- config = require('../../config/user'),
35
- release = require('../../config/admin/release'),
36
- project = require('../../config/project/release'),
37
-
38
- // shorthand
39
- version = project.version,
40
- output = config.paths.output
33
+ // config
34
+ config = require('../../config/user'),
35
+ release = require('../../config/admin/release'),
36
+ project = require('../../config/project/release'),
41
37
 
38
+ // shorthand
39
+ version = project.version,
40
+ output = config.paths.output
42
41
  ;
43
42
 
44
-
45
- module.exports = function(callback) {
46
- var
47
- stream,
48
- index,
49
- tasks = []
50
- ;
51
-
52
- for(index in release.components) {
53
-
43
+ module.exports = function (callback) {
54
44
  var
55
- component = release.components[index]
45
+ stream,
46
+ index,
47
+ tasks = []
56
48
  ;
57
49
 
58
- // streams... designed to save time and make coding fun...
59
- (function(component) {
60
-
61
- var
62
- outputDirectory = path.join(release.outputRoot, component),
63
- isJavascript = fs.existsSync(output.compressed + component + '.js'),
64
- isCSS = fs.existsSync(output.compressed + component + '.css'),
65
- capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
66
- packageName = release.packageRoot + component,
67
- repoName = release.componentRepoRoot + capitalizedComponent,
68
- gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
69
- repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
70
- concatSettings = {
71
- newline : '',
72
- root : outputDirectory,
73
- prepend : " '",
74
- append : "',"
75
- },
76
- regExp = {
77
- match : {
78
- // templated values
79
- name : '{component}',
80
- titleName : '{Component}',
81
- version : '{version}',
82
- files : '{files}',
83
- // release notes
84
- spacedVersions : /(###.*\n)\n+(?=###)/gm,
85
- spacedLists : /(^- .*\n)\n+(?=^-)/gm,
86
- trim : /^\s+|\s+$/g,
87
- unrelatedNotes : new RegExp('^((?!(^.*(' + component + ').*$|###.*)).)*$', 'gmi'),
88
- whitespace : /\n\s*\n\s*\n/gm,
89
- // npm
90
- componentExport : /(.*)\$\.fn\.\w+\s*=\s*function\(([^\)]*)\)\s*{/g,
91
- componentReference: '$.fn.' + component,
92
- settingsExport : /\$\.fn\.\w+\.settings\s*=/g,
93
- settingsReference : /\$\.fn\.\w+\.settings/g,
94
- trailingComma : /,(?=[^,]*$)/,
95
- jQuery : /jQuery/g,
96
- },
97
- replace : {
98
- // readme
99
- name : component,
100
- titleName : capitalizedComponent,
101
- // release notes
102
- spacedVersions : '',
103
- spacedLists : '$1',
104
- trim : '',
105
- unrelatedNotes : '',
106
- whitespace : '\n\n',
107
- // npm
108
- componentExport : 'var _module = module;\n$1module.exports = function($2) {',
109
- componentReference: '_module.exports',
110
- settingsExport : 'module.exports.settings =',
111
- settingsReference : '_module.exports.settings',
112
- jQuery : 'require("jquery")'
113
- }
114
- },
115
- task = {
116
- all : component + ' creating',
117
- repo : component + ' create repo',
118
- bower : component + ' create bower.json',
119
- readme : component + ' create README',
120
- npm : component + ' create NPM Module',
121
- notes : component + ' create release notes',
122
- composer : component + ' create composer.json',
123
- package : component + ' create package.json',
124
- meteor : component + ' create meteor package.js',
125
- },
126
- // paths to includable assets
127
- manifest = {
128
- assets : outputDirectory + '/assets/**/' + component + '?(s).*',
129
- component : outputDirectory + '/' + component + '+(.js|.css)'
130
- }
131
- ;
132
-
133
- // copy dist files into output folder adjusting asset paths
134
- function copyDist() {
135
- return gulp.src(release.source + component + '.*')
136
- .pipe(plumber())
137
- .pipe(flatten())
138
- .pipe(replace(release.paths.source, release.paths.output))
139
- .pipe(gulp.dest(outputDirectory))
140
- ;
141
- }
50
+ for (index in release.components) {
51
+ var
52
+ component = release.components[index]
53
+ ;
142
54
 
143
- // create npm module
144
- function createNpmModule() {
145
- return gulp.src(release.source + component + '!(*.min|*.map).js')
146
- .pipe(plumber())
147
- .pipe(flatten())
148
- .pipe(replace(regExp.match.componentExport, regExp.replace.componentExport))
149
- .pipe(replace(regExp.match.componentReference, regExp.replace.componentReference))
150
- .pipe(replace(regExp.match.settingsExport, regExp.replace.settingsExport))
151
- .pipe(replace(regExp.match.settingsReference, regExp.replace.settingsReference))
152
- .pipe(replace(regExp.match.jQuery, regExp.replace.jQuery))
153
- .pipe(rename('index.js'))
154
- .pipe(gulp.dest(outputDirectory))
155
- ;
156
- }
55
+ // streams... designed to save time and make coding fun...
56
+ (function (component) {
57
+ var
58
+ outputDirectory = path.join(release.outputRoot, component),
59
+ isJavascript = fs.existsSync(output.compressed + component + '.js'),
60
+ isCSS = fs.existsSync(output.compressed + component + '.css'),
61
+ capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
62
+ packageName = release.packageRoot + component,
63
+ repoName = release.componentRepoRoot + capitalizedComponent,
64
+ gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
65
+ repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
66
+ concatSettings = {
67
+ newline: '',
68
+ root: outputDirectory,
69
+ prepend: " '",
70
+ append: "',",
71
+ },
72
+ regExp = {
73
+ match: {
74
+ // templated values
75
+ name: '{component}',
76
+ titleName: '{Component}',
77
+ version: '{version}',
78
+ files: '{files}',
79
+ // release notes
80
+ spacedVersions: /(###.*\n)\n+(?=###)/gm,
81
+ spacedLists: /(^- .*\n)\n+(?=^-)/gm,
82
+ trim: /^\s+|\s+$/g,
83
+ unrelatedNotes: new RegExp('^((?!(^.*(' + component + ').*$|###.*)).)*$', 'gmi'),
84
+ whitespace: /\n\s*\n\s*\n/gm,
85
+ // npm
86
+ componentExport: /(.*)\$\.fn\.\w+\s*=\s*function\(([^\)]*)\)\s*{/g,
87
+ componentReference: '$.fn.' + component,
88
+ settingsExport: /\$\.fn\.\w+\.settings\s*=/g,
89
+ settingsReference: /\$\.fn\.\w+\.settings/g,
90
+ trailingComma: /,(?=[^,]*$)/,
91
+ jQuery: /jQuery/g,
92
+ },
93
+ replace: {
94
+ // readme
95
+ name: component,
96
+ titleName: capitalizedComponent,
97
+ // release notes
98
+ spacedVersions: '',
99
+ spacedLists: '$1',
100
+ trim: '',
101
+ unrelatedNotes: '',
102
+ whitespace: '\n\n',
103
+ // npm
104
+ componentExport: 'var _module = module;\n$1module.exports = function($2) {',
105
+ componentReference: '_module.exports',
106
+ settingsExport: 'module.exports.settings =',
107
+ settingsReference: '_module.exports.settings',
108
+ jQuery: 'require("jquery")',
109
+ },
110
+ },
111
+ task = {
112
+ all: component + ' creating',
113
+ repo: component + ' create repo',
114
+ bower: component + ' create bower.json',
115
+ readme: component + ' create README',
116
+ npm: component + ' create NPM Module',
117
+ notes: component + ' create release notes',
118
+ composer: component + ' create composer.json',
119
+ package: component + ' create package.json',
120
+ meteor: component + ' create meteor package.js',
121
+ },
122
+ // paths to includable assets
123
+ manifest = {
124
+ assets: outputDirectory + '/assets/**/' + component + '?(s).*',
125
+ component: outputDirectory + '/' + component + '+(.js|.css)',
126
+ }
127
+ ;
157
128
 
158
- // create readme
159
- function createReadme() {
160
- return gulp.src(release.templates.readme)
161
- .pipe(plumber())
162
- .pipe(flatten())
163
- .pipe(replace(regExp.match.name, regExp.replace.name))
164
- .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
165
- .pipe(gulp.dest(outputDirectory))
166
- ;
167
- }
129
+ // copy dist files into output folder adjusting asset paths
130
+ function copyDist() {
131
+ return gulp.src(release.source + component + '.*')
132
+ .pipe(plumber())
133
+ .pipe(flatten())
134
+ .pipe(replace(release.paths.source, release.paths.output))
135
+ .pipe(gulp.dest(outputDirectory))
136
+ ;
137
+ }
168
138
 
169
- // extend bower.json
170
- function extendBower() {
171
- return gulp.src(release.templates.bower)
172
- .pipe(plumber())
173
- .pipe(flatten())
174
- .pipe(jsonEditor(function(bower) {
175
- bower.name = packageName;
176
- bower.description = capitalizedComponent + ' - Semantic UI';
177
- if(isJavascript) {
178
- if(isCSS) {
179
- bower.main = [
180
- component + '.js',
181
- component + '.css'
182
- ];
183
- }
184
- else {
185
- bower.main = [
186
- component + '.js'
187
- ];
188
- }
189
- bower.dependencies = {
190
- jquery: '>=1.8'
191
- };
139
+ // create npm module
140
+ function createNpmModule() {
141
+ return gulp.src(release.source + component + '!(*.min|*.map).js')
142
+ .pipe(plumber())
143
+ .pipe(flatten())
144
+ .pipe(replace(regExp.match.componentExport, regExp.replace.componentExport))
145
+ .pipe(replace(regExp.match.componentReference, regExp.replace.componentReference))
146
+ .pipe(replace(regExp.match.settingsExport, regExp.replace.settingsExport))
147
+ .pipe(replace(regExp.match.settingsReference, regExp.replace.settingsReference))
148
+ .pipe(replace(regExp.match.jQuery, regExp.replace.jQuery))
149
+ .pipe(rename('index.js'))
150
+ .pipe(gulp.dest(outputDirectory))
151
+ ;
192
152
  }
193
- else {
194
- bower.main = [
195
- component + '.css'
196
- ];
153
+
154
+ // create readme
155
+ function createReadme() {
156
+ return gulp.src(release.templates.readme)
157
+ .pipe(plumber())
158
+ .pipe(flatten())
159
+ .pipe(replace(regExp.match.name, regExp.replace.name))
160
+ .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
161
+ .pipe(gulp.dest(outputDirectory))
162
+ ;
197
163
  }
198
- return bower;
199
- }))
200
- .pipe(gulp.dest(outputDirectory))
201
- ;
202
- }
203
164
 
204
- // extend package.json
205
- function extendPackage() {
206
- return gulp.src(release.templates.package)
207
- .pipe(plumber())
208
- .pipe(flatten())
209
- .pipe(jsonEditor(function(npm) {
210
- if(isJavascript) {
211
- npm.dependencies = {
212
- jquery: 'x.x.x'
213
- };
214
- npm.main = 'index.js';
165
+ // extend bower.json
166
+ function extendBower() {
167
+ return gulp.src(release.templates.bower)
168
+ .pipe(plumber())
169
+ .pipe(flatten())
170
+ .pipe(jsonEditor(function (bower) {
171
+ bower.name = packageName;
172
+ bower.description = capitalizedComponent + ' - Semantic UI';
173
+ if (isJavascript) {
174
+ if (isCSS) {
175
+ bower.main = [
176
+ component + '.js',
177
+ component + '.css',
178
+ ];
179
+ } else {
180
+ bower.main = [
181
+ component + '.js',
182
+ ];
183
+ }
184
+ bower.dependencies = {
185
+ jquery: '>=1.8',
186
+ };
187
+ } else {
188
+ bower.main = [
189
+ component + '.css',
190
+ ];
191
+ }
192
+
193
+ return bower;
194
+ }))
195
+ .pipe(gulp.dest(outputDirectory))
196
+ ;
215
197
  }
216
- npm.name = packageName;
217
- if(version) {
218
- npm.version = version;
198
+
199
+ // extend package.json
200
+ function extendPackage() {
201
+ return gulp.src(release.templates.package)
202
+ .pipe(plumber())
203
+ .pipe(flatten())
204
+ .pipe(jsonEditor(function (npm) {
205
+ if (isJavascript) {
206
+ npm.dependencies = {
207
+ jquery: 'x.x.x',
208
+ };
209
+ npm.main = 'index.js';
210
+ }
211
+ npm.name = packageName;
212
+ if (version) {
213
+ npm.version = version;
214
+ }
215
+ npm.title = 'Semantic UI - ' + capitalizedComponent;
216
+ npm.description = 'Single component release of ' + component;
217
+ npm.repository = {
218
+ type: 'git',
219
+ url: gitURL,
220
+ };
221
+
222
+ return npm;
223
+ }))
224
+ .pipe(gulp.dest(outputDirectory))
225
+ ;
219
226
  }
220
- npm.title = 'Semantic UI - ' + capitalizedComponent;
221
- npm.description = 'Single component release of ' + component;
222
- npm.repository = {
223
- type : 'git',
224
- url : gitURL
225
- };
226
- return npm;
227
- }))
228
- .pipe(gulp.dest(outputDirectory))
229
- ;
230
- }
231
227
 
232
- // extend composer.json
233
- function extendComposer(){
234
- return gulp.src(release.templates.composer)
235
- .pipe(plumber())
236
- .pipe(flatten())
237
- .pipe(jsonEditor(function(composer) {
238
- if(isJavascript) {
239
- composer.dependencies = {
240
- jquery: 'x.x.x'
241
- };
242
- composer.main = component + '.js';
228
+ // extend composer.json
229
+ function extendComposer() {
230
+ return gulp.src(release.templates.composer)
231
+ .pipe(plumber())
232
+ .pipe(flatten())
233
+ .pipe(jsonEditor(function (composer) {
234
+ if (isJavascript) {
235
+ composer.dependencies = {
236
+ jquery: 'x.x.x',
237
+ };
238
+ composer.main = component + '.js';
239
+ }
240
+ composer.name = 'semantic/' + component;
241
+ if (version) {
242
+ composer.version = version;
243
+ }
244
+ composer.description = 'Single component release of ' + component;
245
+
246
+ return composer;
247
+ }))
248
+ .pipe(gulp.dest(outputDirectory))
249
+ ;
243
250
  }
244
- composer.name = 'semantic/' + component;
245
- if(version) {
246
- composer.version = version;
251
+
252
+ // create release notes
253
+ function createReleaseNotes() {
254
+ return gulp.src(release.templates.notes)
255
+ .pipe(plumber())
256
+ .pipe(flatten())
257
+ // Remove release notes for lines not mentioning component
258
+ .pipe(replace(regExp.match.unrelatedNotes, regExp.replace.unrelatedNotes))
259
+ .pipe(replace(regExp.match.whitespace, regExp.replace.whitespace))
260
+ .pipe(replace(regExp.match.spacedVersions, regExp.replace.spacedVersions))
261
+ .pipe(replace(regExp.match.spacedLists, regExp.replace.spacedLists))
262
+ .pipe(replace(regExp.match.trim, regExp.replace.trim))
263
+ .pipe(gulp.dest(outputDirectory))
264
+ ;
247
265
  }
248
- composer.description = 'Single component release of ' + component;
249
- return composer;
250
- }))
251
- .pipe(gulp.dest(outputDirectory))
252
- ;
253
- }
254
266
 
255
- // create release notes
256
- function createReleaseNotes() {
257
- return gulp.src(release.templates.notes)
258
- .pipe(plumber())
259
- .pipe(flatten())
260
- // Remove release notes for lines not mentioning component
261
- .pipe(replace(regExp.match.unrelatedNotes, regExp.replace.unrelatedNotes))
262
- .pipe(replace(regExp.match.whitespace, regExp.replace.whitespace))
263
- .pipe(replace(regExp.match.spacedVersions, regExp.replace.spacedVersions))
264
- .pipe(replace(regExp.match.spacedLists, regExp.replace.spacedLists))
265
- .pipe(replace(regExp.match.trim, regExp.replace.trim))
266
- .pipe(gulp.dest(outputDirectory))
267
- ;
268
- }
267
+ // Creates meteor package.js
268
+ function createMeteorPackage() {
269
+ var
270
+ filenames = ''
271
+ ;
269
272
 
270
- // Creates meteor package.js
271
- function createMeteorPackage() {
272
- var
273
- filenames = ''
274
- ;
275
- return gulp.src(manifest.component)
276
- .pipe(concatFileNames('empty.txt', concatSettings))
277
- .pipe(tap(function(file) {
278
- filenames += file.contents;
279
- }))
280
- .on('end', function() {
281
- gulp.src(manifest.assets)
282
- .pipe(concatFileNames('empty.txt', concatSettings))
283
- .pipe(tap(function(file) {
284
- filenames += file.contents;
285
- }))
286
- .on('end', function() {
287
- // remove trailing slash
288
- filenames = filenames.replace(regExp.match.trailingComma, '').trim();
289
- gulp.src(release.templates.meteor.component)
290
- .pipe(plumber())
291
- .pipe(flatten())
292
- .pipe(replace(regExp.match.name, regExp.replace.name))
293
- .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
294
- .pipe(replace(regExp.match.version, version))
295
- .pipe(replace(regExp.match.files, filenames))
296
- .pipe(rename(release.files.meteor))
297
- .pipe(gulp.dest(outputDirectory))
273
+ return gulp.src(manifest.component)
274
+ .pipe(concatFileNames('empty.txt', concatSettings))
275
+ .pipe(tap(function (file) {
276
+ filenames += file.contents;
277
+ }))
278
+ .on('end', function () {
279
+ gulp.src(manifest.assets)
280
+ .pipe(concatFileNames('empty.txt', concatSettings))
281
+ .pipe(tap(function (file) {
282
+ filenames += file.contents;
283
+ }))
284
+ .on('end', function () {
285
+ // remove trailing slash
286
+ filenames = filenames.replace(regExp.match.trailingComma, '').trim();
287
+ gulp.src(release.templates.meteor.component)
288
+ .pipe(plumber())
289
+ .pipe(flatten())
290
+ .pipe(replace(regExp.match.name, regExp.replace.name))
291
+ .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
292
+ .pipe(replace(regExp.match.version, version))
293
+ .pipe(replace(regExp.match.files, filenames))
294
+ .pipe(rename(release.files.meteor))
295
+ .pipe(gulp.dest(outputDirectory))
296
+ ;
297
+ })
298
+ ;
299
+ })
298
300
  ;
299
- })
300
- ;
301
- })
302
- ;
303
- }
301
+ }
304
302
 
305
- tasks.push(gulp.series(
306
- copyDist,
307
- createNpmModule,
308
- extendBower,
309
- createReadme,
310
- extendPackage,
311
- extendComposer,
312
- createReleaseNotes,
313
- createMeteorPackage
314
- ));
315
- })(component);
316
- }
303
+ tasks.push(gulp.series(
304
+ copyDist,
305
+ createNpmModule,
306
+ extendBower,
307
+ createReadme,
308
+ extendPackage,
309
+ extendComposer,
310
+ createReleaseNotes,
311
+ createMeteorPackage
312
+ ));
313
+ })(component);
314
+ }
317
315
 
318
- gulp.series(...tasks)(callback);
316
+ gulp.series(...tasks)(callback);
319
317
  };