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
@@ -3,12 +3,12 @@
3
3
  *******************************/
4
4
 
5
5
  var
6
- fs = require('fs'),
7
- path = require('path'),
8
- defaults = require('../defaults'),
9
- release = require('./release'),
6
+ fs = require('fs'),
7
+ path = require('path'),
8
+ defaults = require('../defaults'),
9
+ release = require('./release'),
10
10
 
11
- requireDotFile = require('require-dot-file')
11
+ requireDotFile = require('require-dot-file')
12
12
  ;
13
13
 
14
14
  /*******************************
@@ -19,44 +19,44 @@ var
19
19
 
20
20
  var when = {
21
21
 
22
- // path
23
- changeRoot: function(questions) {
24
- return (questions.useRoot !== undefined && questions.useRoot !== true);
25
- },
26
-
27
- // permissions
28
- changePermissions: function(questions) {
29
- return (questions.changePermissions && questions.changePermissions === true);
30
- },
31
-
32
- // install
33
- hasConfig: function() {
34
- return requireDotFile('semantic.json', process.cwd());
35
- },
36
-
37
- allowOverwrite: function(questions) {
38
- return (questions.overwrite === undefined || questions.overwrite == 'yes');
39
- },
40
- notAuto: function(questions) {
41
- return (questions.install !== 'auto' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
42
- },
43
- custom: function(questions) {
44
- return (questions.install === 'custom' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
45
- },
46
- express: function(questions) {
47
- return (questions.install === 'express' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
48
- },
49
-
50
- // customize
51
- customize: function(questions) {
52
- return (questions.customize === true);
53
- },
54
- primaryColor: function(questions) {
55
- return (questions.primaryColor);
56
- },
57
- secondaryColor: function(questions) {
58
- return (questions.secondaryColor);
59
- }
22
+ // path
23
+ changeRoot: function (questions) {
24
+ return (questions.useRoot !== undefined && questions.useRoot !== true);
25
+ },
26
+
27
+ // permissions
28
+ changePermissions: function (questions) {
29
+ return (questions.changePermissions && questions.changePermissions === true);
30
+ },
31
+
32
+ // install
33
+ hasConfig: function () {
34
+ return requireDotFile('semantic.json', process.cwd());
35
+ },
36
+
37
+ allowOverwrite: function (questions) {
38
+ return (questions.overwrite === undefined || questions.overwrite == 'yes');
39
+ },
40
+ notAuto: function (questions) {
41
+ return (questions.install !== 'auto' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
42
+ },
43
+ custom: function (questions) {
44
+ return (questions.install === 'custom' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
45
+ },
46
+ express: function (questions) {
47
+ return (questions.install === 'express' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
48
+ },
49
+
50
+ // customize
51
+ customize: function (questions) {
52
+ return (questions.customize === true);
53
+ },
54
+ primaryColor: function (questions) {
55
+ return (questions.primaryColor);
56
+ },
57
+ secondaryColor: function (questions) {
58
+ return (questions.secondaryColor);
59
+ },
60
60
  };
61
61
 
62
62
  /*******************************
@@ -66,9 +66,9 @@ var when = {
66
66
  /* Filters to user input from install questions */
67
67
 
68
68
  var filter = {
69
- removeTrailingSlash: function(path) {
70
- return path.replace(/(\/$|\\$)+/mg, '');
71
- }
69
+ removeTrailingSlash: function (path) {
70
+ return path.replace(/(\/$|\\$)+/mg, '');
71
+ },
72
72
  };
73
73
 
74
74
  /*******************************
@@ -77,690 +77,692 @@ var filter = {
77
77
 
78
78
  module.exports = {
79
79
 
80
- // check whether install is setup
81
- isSetup: function() {
82
- return when.hasConfig();
83
- },
84
-
85
- // detect whether there is a semantic.json configuration and that the auto-install option is set to true
86
- shouldAutoInstall: function() {
87
- var
88
- config = when.hasConfig()
89
- ;
90
- return config['autoInstall'];
91
- },
92
-
93
- // checks if files are in a PM directory
94
- getPackageManager: function(directory) {
95
- var
96
- // returns last matching result (avoid sub-module detection)
97
- walk = function(directory) {
80
+ // check whether install is setup
81
+ isSetup: function () {
82
+ return when.hasConfig();
83
+ },
84
+
85
+ // detect whether there is a semantic.json configuration and that the auto-install option is set to true
86
+ shouldAutoInstall: function () {
98
87
  var
99
- pathArray = directory.split(path.sep),
100
- folder = pathArray[pathArray.length - 1],
101
- nextDirectory = path.join(directory, path.sep, '..')
88
+ config = when.hasConfig()
102
89
  ;
103
- if( folder == 'bower_components') {
104
- return {
105
- name: 'Bower',
106
- root: nextDirectory
107
- };
90
+
91
+ return config.autoInstall;
92
+ },
93
+
94
+ // checks if files are in a PM directory
95
+ getPackageManager: function (directory) {
96
+ var
97
+ // returns last matching result (avoid sub-module detection)
98
+ walk = function (directory) {
99
+ var
100
+ pathArray = directory.split(path.sep),
101
+ folder = pathArray[pathArray.length - 1],
102
+ nextDirectory = path.join(directory, path.sep, '..')
103
+ ;
104
+ if (folder == 'bower_components') {
105
+ return {
106
+ name: 'Bower',
107
+ root: nextDirectory,
108
+ };
109
+ } else if (folder == 'node_modules') {
110
+ return {
111
+ name: 'NPM',
112
+ root: nextDirectory,
113
+ };
114
+ } else if (folder == 'composer') {
115
+ return {
116
+ name: 'Composer',
117
+ root: nextDirectory,
118
+ };
119
+ }
120
+ if (path.resolve(directory) == path.resolve(nextDirectory)) {
121
+ return false;
122
+ }
123
+
124
+ // recurse downward
125
+ return walk(nextDirectory);
126
+ }
127
+ ;
128
+ // start walk from current directory if none specified
129
+ directory = directory || (__dirname + path.sep);
130
+
131
+ return walk(directory);
132
+ },
133
+
134
+ // checks if files is PMed submodule
135
+ isSubModule: function (directory) {
136
+ var
137
+ moduleFolders = 0,
138
+ walk = function (directory) {
139
+ var
140
+ pathArray = directory.split(path.sep),
141
+ folder = pathArray[pathArray.length - 2],
142
+ nextDirectory = path.join(directory, path.sep, '..')
143
+ ;
144
+ if (['bower_components', 'node_modules', 'composer'].includes(folder)) {
145
+ moduleFolders++;
146
+ } else if (folder === '.pnpm') {
147
+ moduleFolders--;
148
+ }
149
+ if (path.resolve(directory) === path.resolve(nextDirectory)) {
150
+ return (moduleFolders > 1);
151
+ }
152
+
153
+ // recurse downward
154
+ return walk(nextDirectory);
155
+ }
156
+ ;
157
+ // start walk from current directory if none specified
158
+ directory = directory || (__dirname + path.sep);
159
+
160
+ return walk(directory);
161
+ },
162
+
163
+ createJSON: function (answers) {
164
+ var
165
+ json = {
166
+ paths: {
167
+ source: {},
168
+ output: {},
169
+ },
170
+ }
171
+ ;
172
+
173
+ // add components
174
+ if (answers.components) {
175
+ json.components = answers.components;
108
176
  }
109
- else if(folder == 'node_modules') {
110
- return {
111
- name: 'NPM',
112
- root: nextDirectory
113
- };
177
+
178
+ // add rtl choice
179
+ if (answers.rtl) {
180
+ json.rtl = answers.rtl;
114
181
  }
115
- else if(folder == 'composer') {
116
- return {
117
- name: 'Composer',
118
- root: nextDirectory
119
- };
182
+
183
+ // add permissions
184
+ if (answers.permission) {
185
+ json.permission = answers.permission;
120
186
  }
121
- if(path.resolve(directory) == path.resolve(nextDirectory)) {
122
- return false;
187
+
188
+ // add path to semantic
189
+ if (answers.semanticRoot) {
190
+ json.base = path.normalize(answers.semanticRoot);
123
191
  }
124
- // recurse downward
125
- return walk(nextDirectory);
126
- }
127
- ;
128
- // start walk from current directory if none specified
129
- directory = directory || (__dirname + path.sep);
130
- return walk(directory);
131
- },
132
-
133
- // checks if files is PMed submodule
134
- isSubModule: function(directory) {
135
- var
136
- moduleFolders = 0,
137
- walk = function(directory) {
138
- var
139
- pathArray = directory.split(path.sep),
140
- folder = pathArray[pathArray.length - 2],
141
- nextDirectory = path.join(directory, path.sep, '..')
142
- ;
143
- if(['bower_components', 'node_modules', 'composer'].includes(folder)) {
144
- moduleFolders++;
145
- } else if(folder === '.pnpm') {
146
- moduleFolders--;
192
+
193
+ // record version number to avoid re-installing on same version
194
+ json.version = release.version;
195
+
196
+ // add dist folder paths
197
+ if (answers.dist) {
198
+ answers.dist = path.normalize(answers.dist);
199
+
200
+ json.paths.output = {
201
+ packaged: path.normalize(answers.dist + '/'),
202
+ uncompressed: path.normalize(answers.dist + '/components/'),
203
+ compressed: path.normalize(answers.dist + '/components/'),
204
+ themes: path.normalize(answers.dist + '/themes/'),
205
+ };
147
206
  }
148
- if(path.resolve(directory) === path.resolve(nextDirectory)) {
149
- return (moduleFolders > 1);
207
+
208
+ // add site path
209
+ if (answers.site) {
210
+ json.paths.source.site = path.normalize(answers.site + '/');
150
211
  }
151
- // recurse downward
152
- return walk(nextDirectory);
153
- }
154
- ;
155
- // start walk from current directory if none specified
156
- directory = directory || (__dirname + path.sep);
157
- return walk(directory);
158
- },
159
-
160
-
161
- createJSON: function(answers) {
162
- var
163
- json = {
164
- paths: {
165
- source: {},
166
- output: {}
212
+ if (answers.packaged) {
213
+ json.paths.output.packaged = path.normalize(answers.packaged + '/');
214
+ }
215
+ if (answers.compressed) {
216
+ json.paths.output.compressed = path.normalize(answers.compressed + '/');
217
+ }
218
+ if (answers.uncompressed) {
219
+ json.paths.output.uncompressed = path.normalize(answers.uncompressed + '/');
167
220
  }
168
- }
169
- ;
170
-
171
- // add components
172
- if(answers.components) {
173
- json.components = answers.components;
174
- }
175
-
176
- // add rtl choice
177
- if(answers.rtl) {
178
- json.rtl = answers.rtl;
179
- }
180
-
181
- // add permissions
182
- if(answers.permission) {
183
- json.permission = answers.permission;
184
- }
185
-
186
- // add path to semantic
187
- if(answers.semanticRoot) {
188
- json.base = path.normalize(answers.semanticRoot);
189
- }
190
-
191
- // record version number to avoid re-installing on same version
192
- json.version = release.version;
193
-
194
- // add dist folder paths
195
- if(answers.dist) {
196
- answers.dist = path.normalize(answers.dist);
197
-
198
- json.paths.output = {
199
- packaged : path.normalize(answers.dist + '/'),
200
- uncompressed : path.normalize(answers.dist + '/components/'),
201
- compressed : path.normalize(answers.dist + '/components/'),
202
- themes : path.normalize(answers.dist + '/themes/')
203
- };
204
- }
205
-
206
- // add site path
207
- if(answers.site) {
208
- json.paths.source.site = path.normalize(answers.site + '/');
209
- }
210
- if(answers.packaged) {
211
- json.paths.output.packaged = path.normalize(answers.packaged + '/');
212
- }
213
- if(answers.compressed) {
214
- json.paths.output.compressed = path.normalize(answers.compressed + '/');
215
- }
216
- if(answers.uncompressed) {
217
- json.paths.output.uncompressed = path.normalize(answers.uncompressed + '/');
218
- }
219
- return json;
220
- },
221
-
222
- // files cleaned up after install
223
- setupFiles: [
224
- './src/theme.config.example',
225
- './semantic.json.example',
226
- './src/_site'
227
- ],
228
-
229
- regExp: {
230
- // used to match siteFolder variable in theme.less
231
- siteVariable: /@siteFolder .*\'(.*)/mg
232
- },
233
-
234
- // source paths (when installing)
235
- source: {
236
- config : './semantic.json.example',
237
- definitions : './src/definitions',
238
- gulpFile : './gulpfile.js',
239
- lessImport : './src/semantic.less',
240
- site : './src/_site',
241
- tasks : './tasks',
242
- themeConfig : './src/theme.config.example',
243
- themeImport : './src/theme.less',
244
- themes : './src/themes',
245
- defaultTheme : './src/themes/default',
246
- userGulpFile : './tasks/config/npm/gulpfile.js'
247
- },
248
-
249
- // expected final filenames
250
- files: {
251
- config : 'semantic.json',
252
- lessImport : 'src/semantic.less',
253
- site : 'src/site',
254
- themeConfig : 'src/theme.config',
255
- themeImport : 'src/theme.less'
256
- },
257
-
258
- // folder paths to files relative to root
259
- folders: {
260
- config : './',
261
- definitions : 'src/definitions/',
262
- lessImport : 'src/',
263
- modules : 'node_modules/',
264
- site : 'src/site/',
265
- tasks : 'tasks/',
266
- themeConfig : 'src/',
267
- themeImport : 'src/',
268
- themes : 'src/themes/',
269
-
270
- defaultTheme : 'default/' // only path that is relative to another directory and not root
271
- },
272
-
273
- // questions asked during install
274
- questions: {
275
-
276
- root: [
277
- {
278
- type : 'list',
279
- name : 'useRoot',
280
- message :
281
- '{packageMessage} Is this your project folder? {root}',
282
- choices: [
283
- {
284
- name : 'Yes',
285
- value : true
286
- },
287
- {
288
- name : 'No, let me specify',
289
- value : false
290
- }
291
- ]
292
- },
293
- {
294
- type : 'input',
295
- name : 'customRoot',
296
- message : 'Please enter the absolute path to your project root',
297
- default : '/my/project/path',
298
- when : when.changeRoot
299
- },
300
- {
301
- type : 'input',
302
- name : 'semanticRoot',
303
- message : 'Where should we put Fomantic UI inside your project?',
304
- default : 'semantic/'
305
- }
306
- ],
307
221
 
308
- setup: [
309
- {
310
- type: 'list',
311
- name: 'overwrite',
312
- message: 'It looks like you have a semantic.json file already.',
313
- when: when.hasConfig,
314
- choices: [
315
- {
316
- name: 'Yes, extend my current settings.',
317
- value: 'yes'
318
- },
319
- {
320
- name: 'Skip install',
321
- value: 'no'
322
- }
323
- ]
324
- },
325
- {
326
- type: 'list',
327
- name: 'install',
328
- message: 'Set-up Fomantic UI',
329
- when: when.allowOverwrite,
330
- choices: [
331
- {
332
- name: 'Automatic (Use default locations and all components)',
333
- value: 'auto'
334
- },
335
- {
336
- name: 'Express (Set components and output folder)',
337
- value: 'express'
338
- },
339
- {
340
- name: 'Custom (Customize all src/dist values)',
341
- value: 'custom'
342
- }
343
- ]
344
- },
345
- {
346
- type: 'checkbox',
347
- name: 'components',
348
- message: 'What components should we include in the package?',
349
-
350
- // duplicated manually from tasks/defaults.js with additional property
351
- choices: [
352
- { name: "\x1b[4mGlobal\x1b[0m", disabled: "Styles that are applied across a site"},
353
- { name: "reset", checked: true },
354
- { name: "site", checked: true },
355
- { name: "\x1b[4mElements\x1b[0m", disabled: "Page elements with a single function"},
356
- { name: "button", checked: true },
357
- { name: "container", checked: true },
358
- { name: "divider", checked: true },
359
- { name: "emoji", checked: true },
360
- { name: "flag", checked: true },
361
- { name: "header", checked: true },
362
- { name: "icon", checked: true },
363
- { name: "image", checked: true },
364
- { name: "input", checked: true },
365
- { name: "label", checked: true },
366
- { name: "list", checked: true },
367
- { name: "loader", checked: true },
368
- { name: "rail", checked: true },
369
- { name: "reveal", checked: true },
370
- { name: "segment", checked: true },
371
- { name: "step", checked: true },
372
- { name: "\x1b[4mCollections\x1b[0m", disabled: "Heterogeneous groups of components"},
373
- { name: "breadcrumb", checked: true },
374
- { name: "form", checked: true },
375
- { name: "grid", checked: true },
376
- { name: "menu", checked: true },
377
- { name: "message", checked: true },
378
- { name: "table", checked: true },
379
- { name: "\x1b[4mViews\x1b[0m", disabled: "Convention for presenting specific types of content"},
380
- { name: "ad", checked: true },
381
- { name: "card", checked: true },
382
- { name: "comment", checked: true },
383
- { name: "feed", checked: true },
384
- { name: "item", checked: true },
385
- { name: "statistic", checked: true },
386
- { name: "\x1b[4mModules\x1b[0m", disabled: "Components which need Javascript for interactivity"},
387
- { name: "accordion", checked: true },
388
- { name: "calendar", checked: true },
389
- { name: "checkbox", checked: true },
390
- { name: "dimmer", checked: true },
391
- { name: "dropdown", checked: true },
392
- { name: "embed", checked: true },
393
- { name: "flyout", checked: true },
394
- { name: "modal", checked: true },
395
- { name: "nag", checked: true },
396
- { name: "placeholder", checked: true },
397
- { name: "popup", checked: true },
398
- { name: "progress", checked: true },
399
- { name: "slider", checked: true },
400
- { name: "rating", checked: true },
401
- { name: "search", checked: true },
402
- { name: "shape", checked: true },
403
- { name: "sidebar", checked: true },
404
- { name: "sticky", checked: true },
405
- { name: "tab", checked: true },
406
- { name: "text", checked: true },
407
- { name: "toast", checked: true },
408
- { name: "transition", checked: true },
409
- { name: "\x1b[4mBehaviors\x1b[0m", disabled: "Standalone javascript components"},
410
- { name: "api", checked: true },
411
- { name: "form", checked: true },
412
- { name: "state", checked: true },
413
- { name: "visibility", checked: true }
414
- ],
415
- when: when.notAuto
416
- },
417
- {
418
- type: 'list',
419
- name: 'changePermissions',
420
- when: when.notAuto,
421
- message: 'Should we set permissions on outputted files?',
422
- choices: [
423
- {
424
- name: 'No',
425
- value: false
426
- },
427
- {
428
- name: 'Yes',
429
- value: true
430
- }
431
- ]
432
- },
433
- {
434
- type: 'input',
435
- name: 'permission',
436
- message: 'What octal file permission should outputted files receive?',
437
- default: defaults.permission,
438
- when: when.changePermissions
439
- },
440
- {
441
- type: 'list',
442
- name: 'rtl',
443
- message: 'Do you use a RTL (Right-To-Left) language?',
444
- when: when.notAuto,
445
- choices: [
446
- {
447
- name: 'No',
448
- value: false
449
- },
450
- {
451
- name: 'Yes',
452
- value: true
453
- },
454
- {
455
- name: 'Build Both',
456
- value: 'both'
457
- }
458
- ]
459
- },
460
- {
461
- type: 'input',
462
- name: 'dist',
463
- message: 'Where should we output Fomantic UI?',
464
- default: defaults.paths.output.packaged,
465
- filter: filter.removeTrailingSlash,
466
- when: when.express
467
- },
468
- {
469
- type: 'input',
470
- name: 'site',
471
- message: 'Where should we put your site folder?',
472
- default: defaults.paths.source.site,
473
- filter: filter.removeTrailingSlash,
474
- when: when.custom
475
- },
476
- {
477
- type: 'input',
478
- name: 'packaged',
479
- message: 'Where should we output a packaged version?',
480
- default: defaults.paths.output.packaged,
481
- filter: filter.removeTrailingSlash,
482
- when: when.custom
483
- },
484
- {
485
- type: 'input',
486
- name: 'compressed',
487
- message: 'Where should we output compressed components?',
488
- default: defaults.paths.output.compressed,
489
- filter: filter.removeTrailingSlash,
490
- when: when.custom
491
- },
492
- {
493
- type: 'input',
494
- name: 'uncompressed',
495
- message: 'Where should we output uncompressed components?',
496
- default: defaults.paths.output.uncompressed,
497
- filter: filter.removeTrailingSlash,
498
- when: when.custom
499
- }
222
+ return json;
223
+ },
224
+
225
+ // files cleaned up after install
226
+ setupFiles: [
227
+ './src/theme.config.example',
228
+ './semantic.json.example',
229
+ './src/_site',
500
230
  ],
501
231
 
232
+ regExp: {
233
+ // used to match siteFolder variable in theme.less
234
+ siteVariable: /@siteFolder .*\'(.*)/mg,
235
+ },
502
236
 
503
- cleanup: [
504
- {
505
- type: 'list',
506
- name: 'cleanup',
507
- message: 'Should we remove set-up files?',
508
- choices: [
509
- {
510
- name: 'Yes (re-install will require redownloading fomantic).',
511
- value: 'yes'
512
- },
513
- {
514
- name: 'No Thanks',
515
- value: 'no'
516
- }
517
- ]
518
- },
519
- {
520
- type: 'list',
521
- name: 'build',
522
- message: 'Do you want to build Fomantic now?',
523
- choices: [
524
- {
525
- name: 'Yes',
526
- value: 'yes'
527
- },
528
- {
529
- name: 'No',
530
- value: 'no'
531
- }
532
- ]
533
- },
534
- ],
535
- site: [
536
- {
537
- type: 'list',
538
- name: 'customize',
539
- message: 'You have not yet customized your site, can we help you do that?',
540
- choices: [
541
- {
542
- name: 'Yes, ask me a few questions',
543
- value: true
544
- },
545
- {
546
- name: 'No I\'ll do it myself',
547
- value: false
548
- }
549
- ]
550
- },
551
- {
552
- type: 'list',
553
- name: 'headerFont',
554
- message: 'Select your header font',
555
- choices: [
556
- {
557
- name: 'Helvetica Neue, Arial, sans-serif',
558
- value: 'Helvetica Neue, Arial, sans-serif;'
559
- },
560
- {
561
- name: 'Lato (Google Fonts)',
562
- value: 'Lato'
563
- },
564
- {
565
- name: 'Open Sans (Google Fonts)',
566
- value: 'Open Sans'
567
- },
568
- {
569
- name: 'Source Sans Pro (Google Fonts)',
570
- value: 'Source Sans Pro'
571
- },
572
- {
573
- name: 'Droid (Google Fonts)',
574
- value: 'Droid'
575
- },
576
- {
577
- name: 'I\'ll choose on my own',
578
- value: false
579
- }
580
- ],
581
- when: when.customize
582
- },
583
- {
584
- type: 'list',
585
- name: 'pageFont',
586
- message: 'Select your page font',
587
- choices: [
588
- {
589
- name: 'Helvetica Neue, Arial, sans-serif',
590
- value: 'Helvetica Neue, Arial, sans-serif;'
591
- },
592
- {
593
- name: 'Lato (Import from Google Fonts)',
594
- value: 'Lato'
595
- },
596
- {
597
- name: 'Open Sans (Import from Google Fonts)',
598
- value: 'Open Sans'
599
- },
600
- {
601
- name: 'Source Sans Pro (Import from Google Fonts)',
602
- value: 'Source Sans Pro'
603
- },
604
- {
605
- name: 'Droid (Google Fonts)',
606
- value: 'Droid'
607
- },
608
- {
609
- name: 'I\'ll choose on my own',
610
- value: false
611
- }
237
+ // source paths (when installing)
238
+ source: {
239
+ config: './semantic.json.example',
240
+ definitions: './src/definitions',
241
+ gulpFile: './gulpfile.js',
242
+ lessImport: './src/semantic.less',
243
+ site: './src/_site',
244
+ tasks: './tasks',
245
+ themeConfig: './src/theme.config.example',
246
+ themeImport: './src/theme.less',
247
+ themes: './src/themes',
248
+ defaultTheme: './src/themes/default',
249
+ userGulpFile: './tasks/config/npm/gulpfile.js',
250
+ },
251
+
252
+ // expected final filenames
253
+ files: {
254
+ config: 'semantic.json',
255
+ lessImport: 'src/semantic.less',
256
+ site: 'src/site',
257
+ themeConfig: 'src/theme.config',
258
+ themeImport: 'src/theme.less',
259
+ },
260
+
261
+ // folder paths to files relative to root
262
+ folders: {
263
+ config: './',
264
+ definitions: 'src/definitions/',
265
+ lessImport: 'src/',
266
+ modules: 'node_modules/',
267
+ site: 'src/site/',
268
+ tasks: 'tasks/',
269
+ themeConfig: 'src/',
270
+ themeImport: 'src/',
271
+ themes: 'src/themes/',
272
+
273
+ defaultTheme: 'default/', // only path that is relative to another directory and not root
274
+ },
275
+
276
+ // questions asked during install
277
+ questions: {
278
+
279
+ root: [
280
+ {
281
+ type: 'list',
282
+ name: 'useRoot',
283
+ message:
284
+ '{packageMessage} Is this your project folder? {root}',
285
+ choices: [
286
+ {
287
+ name: 'Yes',
288
+ value: true,
289
+ },
290
+ {
291
+ name: 'No, let me specify',
292
+ value: false,
293
+ },
294
+ ],
295
+ },
296
+ {
297
+ type: 'input',
298
+ name: 'customRoot',
299
+ message: 'Please enter the absolute path to your project root',
300
+ default: '/my/project/path',
301
+ when: when.changeRoot,
302
+ },
303
+ {
304
+ type: 'input',
305
+ name: 'semanticRoot',
306
+ message: 'Where should we put Fomantic UI inside your project?',
307
+ default: 'semantic/',
308
+ },
612
309
  ],
613
- when: when.customize
614
- },
615
- {
616
- type: 'list',
617
- name: 'fontSize',
618
- message: 'Select your base font size',
619
- default: '14px',
620
- choices: [
621
- {
622
- name: '12px',
623
- },
624
- {
625
- name: '13px',
626
- },
627
- {
628
- name: '14px (Recommended)',
629
- value: '14px'
630
- },
631
- {
632
- name: '15px',
633
- },
634
- {
635
- name: '16px',
636
- },
637
- {
638
- name: 'I\'ll choose on my own',
639
- value: false
640
- }
310
+
311
+ setup: [
312
+ {
313
+ type: 'list',
314
+ name: 'overwrite',
315
+ message: 'It looks like you have a semantic.json file already.',
316
+ when: when.hasConfig,
317
+ choices: [
318
+ {
319
+ name: 'Yes, extend my current settings.',
320
+ value: 'yes',
321
+ },
322
+ {
323
+ name: 'Skip install',
324
+ value: 'no',
325
+ },
326
+ ],
327
+ },
328
+ {
329
+ type: 'list',
330
+ name: 'install',
331
+ message: 'Set-up Fomantic UI',
332
+ when: when.allowOverwrite,
333
+ choices: [
334
+ {
335
+ name: 'Automatic (Use default locations and all components)',
336
+ value: 'auto',
337
+ },
338
+ {
339
+ name: 'Express (Set components and output folder)',
340
+ value: 'express',
341
+ },
342
+ {
343
+ name: 'Custom (Customize all src/dist values)',
344
+ value: 'custom',
345
+ },
346
+ ],
347
+ },
348
+ {
349
+ type: 'checkbox',
350
+ name: 'components',
351
+ message: 'What components should we include in the package?',
352
+
353
+ // duplicated manually from tasks/defaults.js with additional property
354
+ choices: [
355
+ { name: '\x1b[4mGlobal\x1b[0m', disabled: 'Styles that are applied across a site' },
356
+ { name: 'reset', checked: true },
357
+ { name: 'site', checked: true },
358
+ { name: '\x1b[4mElements\x1b[0m', disabled: 'Page elements with a single function' },
359
+ { name: 'button', checked: true },
360
+ { name: 'container', checked: true },
361
+ { name: 'divider', checked: true },
362
+ { name: 'emoji', checked: true },
363
+ { name: 'flag', checked: true },
364
+ { name: 'header', checked: true },
365
+ { name: 'icon', checked: true },
366
+ { name: 'image', checked: true },
367
+ { name: 'input', checked: true },
368
+ { name: 'label', checked: true },
369
+ { name: 'list', checked: true },
370
+ { name: 'loader', checked: true },
371
+ { name: 'rail', checked: true },
372
+ { name: 'reveal', checked: true },
373
+ { name: 'segment', checked: true },
374
+ { name: 'step', checked: true },
375
+ { name: '\x1b[4mCollections\x1b[0m', disabled: 'Heterogeneous groups of components' },
376
+ { name: 'breadcrumb', checked: true },
377
+ { name: 'form', checked: true },
378
+ { name: 'grid', checked: true },
379
+ { name: 'menu', checked: true },
380
+ { name: 'message', checked: true },
381
+ { name: 'table', checked: true },
382
+ { name: '\x1b[4mViews\x1b[0m', disabled: 'Convention for presenting specific types of content' },
383
+ { name: 'ad', checked: true },
384
+ { name: 'card', checked: true },
385
+ { name: 'comment', checked: true },
386
+ { name: 'feed', checked: true },
387
+ { name: 'item', checked: true },
388
+ { name: 'statistic', checked: true },
389
+ { name: '\x1b[4mModules\x1b[0m', disabled: 'Components which need Javascript for interactivity' },
390
+ { name: 'accordion', checked: true },
391
+ { name: 'calendar', checked: true },
392
+ { name: 'checkbox', checked: true },
393
+ { name: 'dimmer', checked: true },
394
+ { name: 'dropdown', checked: true },
395
+ { name: 'embed', checked: true },
396
+ { name: 'flyout', checked: true },
397
+ { name: 'modal', checked: true },
398
+ { name: 'nag', checked: true },
399
+ { name: 'placeholder', checked: true },
400
+ { name: 'popup', checked: true },
401
+ { name: 'progress', checked: true },
402
+ { name: 'slider', checked: true },
403
+ { name: 'rating', checked: true },
404
+ { name: 'search', checked: true },
405
+ { name: 'shape', checked: true },
406
+ { name: 'sidebar', checked: true },
407
+ { name: 'sticky', checked: true },
408
+ { name: 'tab', checked: true },
409
+ { name: 'text', checked: true },
410
+ { name: 'toast', checked: true },
411
+ { name: 'transition', checked: true },
412
+ { name: '\x1b[4mBehaviors\x1b[0m', disabled: 'Standalone javascript components' },
413
+ { name: 'api', checked: true },
414
+ { name: 'form', checked: true },
415
+ { name: 'state', checked: true },
416
+ { name: 'visibility', checked: true },
417
+ ],
418
+ when: when.notAuto,
419
+ },
420
+ {
421
+ type: 'list',
422
+ name: 'changePermissions',
423
+ when: when.notAuto,
424
+ message: 'Should we set permissions on outputted files?',
425
+ choices: [
426
+ {
427
+ name: 'No',
428
+ value: false,
429
+ },
430
+ {
431
+ name: 'Yes',
432
+ value: true,
433
+ },
434
+ ],
435
+ },
436
+ {
437
+ type: 'input',
438
+ name: 'permission',
439
+ message: 'What octal file permission should outputted files receive?',
440
+ default: defaults.permission,
441
+ when: when.changePermissions,
442
+ },
443
+ {
444
+ type: 'list',
445
+ name: 'rtl',
446
+ message: 'Do you use a RTL (Right-To-Left) language?',
447
+ when: when.notAuto,
448
+ choices: [
449
+ {
450
+ name: 'No',
451
+ value: false,
452
+ },
453
+ {
454
+ name: 'Yes',
455
+ value: true,
456
+ },
457
+ {
458
+ name: 'Build Both',
459
+ value: 'both',
460
+ },
461
+ ],
462
+ },
463
+ {
464
+ type: 'input',
465
+ name: 'dist',
466
+ message: 'Where should we output Fomantic UI?',
467
+ default: defaults.paths.output.packaged,
468
+ filter: filter.removeTrailingSlash,
469
+ when: when.express,
470
+ },
471
+ {
472
+ type: 'input',
473
+ name: 'site',
474
+ message: 'Where should we put your site folder?',
475
+ default: defaults.paths.source.site,
476
+ filter: filter.removeTrailingSlash,
477
+ when: when.custom,
478
+ },
479
+ {
480
+ type: 'input',
481
+ name: 'packaged',
482
+ message: 'Where should we output a packaged version?',
483
+ default: defaults.paths.output.packaged,
484
+ filter: filter.removeTrailingSlash,
485
+ when: when.custom,
486
+ },
487
+ {
488
+ type: 'input',
489
+ name: 'compressed',
490
+ message: 'Where should we output compressed components?',
491
+ default: defaults.paths.output.compressed,
492
+ filter: filter.removeTrailingSlash,
493
+ when: when.custom,
494
+ },
495
+ {
496
+ type: 'input',
497
+ name: 'uncompressed',
498
+ message: 'Where should we output uncompressed components?',
499
+ default: defaults.paths.output.uncompressed,
500
+ filter: filter.removeTrailingSlash,
501
+ when: when.custom,
502
+ },
641
503
  ],
642
- when: when.customize
643
- },
644
- {
645
- type: 'list',
646
- name: 'primaryColor',
647
- message: 'Select the closest name for your primary brand color',
648
- default: '14px',
649
- choices: [
650
- {
651
- name: 'Blue'
652
- },
653
- {
654
- name: 'Green'
655
- },
656
- {
657
- name: 'Orange'
658
- },
659
- {
660
- name: 'Pink'
661
- },
662
- {
663
- name: 'Purple'
664
- },
665
- {
666
- name: 'Red'
667
- },
668
- {
669
- name: 'Teal'
670
- },
671
- {
672
- name: 'Yellow'
673
- },
674
- {
675
- name: 'Black'
676
- },
677
- {
678
- name: 'I\'ll choose on my own',
679
- value: false
680
- }
504
+
505
+ cleanup: [
506
+ {
507
+ type: 'list',
508
+ name: 'cleanup',
509
+ message: 'Should we remove set-up files?',
510
+ choices: [
511
+ {
512
+ name: 'Yes (re-install will require redownloading fomantic).',
513
+ value: 'yes',
514
+ },
515
+ {
516
+ name: 'No Thanks',
517
+ value: 'no',
518
+ },
519
+ ],
520
+ },
521
+ {
522
+ type: 'list',
523
+ name: 'build',
524
+ message: 'Do you want to build Fomantic now?',
525
+ choices: [
526
+ {
527
+ name: 'Yes',
528
+ value: 'yes',
529
+ },
530
+ {
531
+ name: 'No',
532
+ value: 'no',
533
+ },
534
+ ],
535
+ },
681
536
  ],
682
- when: when.customize
683
- },
684
- {
685
- type: 'input',
686
- name: 'PrimaryHex',
687
- message: 'Enter a hexcode for your primary brand color',
688
- when: when.primaryColor
689
- },
690
- {
691
- type: 'list',
692
- name: 'secondaryColor',
693
- message: 'Select the closest name for your secondary brand color',
694
- default: '14px',
695
- choices: [
696
- {
697
- name: 'Blue'
698
- },
699
- {
700
- name: 'Green'
701
- },
702
- {
703
- name: 'Orange'
704
- },
705
- {
706
- name: 'Pink'
707
- },
708
- {
709
- name: 'Purple'
710
- },
711
- {
712
- name: 'Red'
713
- },
714
- {
715
- name: 'Teal'
716
- },
717
- {
718
- name: 'Yellow'
719
- },
720
- {
721
- name: 'Black'
722
- },
723
- {
724
- name: 'I\'ll choose on my own',
725
- value: false
726
- }
537
+ site: [
538
+ {
539
+ type: 'list',
540
+ name: 'customize',
541
+ message: 'You have not yet customized your site, can we help you do that?',
542
+ choices: [
543
+ {
544
+ name: 'Yes, ask me a few questions',
545
+ value: true,
546
+ },
547
+ {
548
+ name: 'No I\'ll do it myself',
549
+ value: false,
550
+ },
551
+ ],
552
+ },
553
+ {
554
+ type: 'list',
555
+ name: 'headerFont',
556
+ message: 'Select your header font',
557
+ choices: [
558
+ {
559
+ name: 'Helvetica Neue, Arial, sans-serif',
560
+ value: 'Helvetica Neue, Arial, sans-serif;',
561
+ },
562
+ {
563
+ name: 'Lato (Google Fonts)',
564
+ value: 'Lato',
565
+ },
566
+ {
567
+ name: 'Open Sans (Google Fonts)',
568
+ value: 'Open Sans',
569
+ },
570
+ {
571
+ name: 'Source Sans Pro (Google Fonts)',
572
+ value: 'Source Sans Pro',
573
+ },
574
+ {
575
+ name: 'Droid (Google Fonts)',
576
+ value: 'Droid',
577
+ },
578
+ {
579
+ name: 'I\'ll choose on my own',
580
+ value: false,
581
+ },
582
+ ],
583
+ when: when.customize,
584
+ },
585
+ {
586
+ type: 'list',
587
+ name: 'pageFont',
588
+ message: 'Select your page font',
589
+ choices: [
590
+ {
591
+ name: 'Helvetica Neue, Arial, sans-serif',
592
+ value: 'Helvetica Neue, Arial, sans-serif;',
593
+ },
594
+ {
595
+ name: 'Lato (Import from Google Fonts)',
596
+ value: 'Lato',
597
+ },
598
+ {
599
+ name: 'Open Sans (Import from Google Fonts)',
600
+ value: 'Open Sans',
601
+ },
602
+ {
603
+ name: 'Source Sans Pro (Import from Google Fonts)',
604
+ value: 'Source Sans Pro',
605
+ },
606
+ {
607
+ name: 'Droid (Google Fonts)',
608
+ value: 'Droid',
609
+ },
610
+ {
611
+ name: 'I\'ll choose on my own',
612
+ value: false,
613
+ },
614
+ ],
615
+ when: when.customize,
616
+ },
617
+ {
618
+ type: 'list',
619
+ name: 'fontSize',
620
+ message: 'Select your base font size',
621
+ default: '14px',
622
+ choices: [
623
+ {
624
+ name: '12px',
625
+ },
626
+ {
627
+ name: '13px',
628
+ },
629
+ {
630
+ name: '14px (Recommended)',
631
+ value: '14px',
632
+ },
633
+ {
634
+ name: '15px',
635
+ },
636
+ {
637
+ name: '16px',
638
+ },
639
+ {
640
+ name: 'I\'ll choose on my own',
641
+ value: false,
642
+ },
643
+ ],
644
+ when: when.customize,
645
+ },
646
+ {
647
+ type: 'list',
648
+ name: 'primaryColor',
649
+ message: 'Select the closest name for your primary brand color',
650
+ default: '14px',
651
+ choices: [
652
+ {
653
+ name: 'Blue',
654
+ },
655
+ {
656
+ name: 'Green',
657
+ },
658
+ {
659
+ name: 'Orange',
660
+ },
661
+ {
662
+ name: 'Pink',
663
+ },
664
+ {
665
+ name: 'Purple',
666
+ },
667
+ {
668
+ name: 'Red',
669
+ },
670
+ {
671
+ name: 'Teal',
672
+ },
673
+ {
674
+ name: 'Yellow',
675
+ },
676
+ {
677
+ name: 'Black',
678
+ },
679
+ {
680
+ name: 'I\'ll choose on my own',
681
+ value: false,
682
+ },
683
+ ],
684
+ when: when.customize,
685
+ },
686
+ {
687
+ type: 'input',
688
+ name: 'PrimaryHex',
689
+ message: 'Enter a hexcode for your primary brand color',
690
+ when: when.primaryColor,
691
+ },
692
+ {
693
+ type: 'list',
694
+ name: 'secondaryColor',
695
+ message: 'Select the closest name for your secondary brand color',
696
+ default: '14px',
697
+ choices: [
698
+ {
699
+ name: 'Blue',
700
+ },
701
+ {
702
+ name: 'Green',
703
+ },
704
+ {
705
+ name: 'Orange',
706
+ },
707
+ {
708
+ name: 'Pink',
709
+ },
710
+ {
711
+ name: 'Purple',
712
+ },
713
+ {
714
+ name: 'Red',
715
+ },
716
+ {
717
+ name: 'Teal',
718
+ },
719
+ {
720
+ name: 'Yellow',
721
+ },
722
+ {
723
+ name: 'Black',
724
+ },
725
+ {
726
+ name: 'I\'ll choose on my own',
727
+ value: false,
728
+ },
729
+ ],
730
+ when: when.customize,
731
+ },
732
+ {
733
+ type: 'input',
734
+ name: 'secondaryHex',
735
+ message: 'Enter a hexcode for your secondary brand color',
736
+ when: when.secondaryColor,
737
+ },
727
738
  ],
728
- when: when.customize
729
- },
730
- {
731
- type: 'input',
732
- name: 'secondaryHex',
733
- message: 'Enter a hexcode for your secondary brand color',
734
- when: when.secondaryColor
735
- }
736
- ]
737
-
738
- },
739
-
740
- settings: {
741
-
742
- /* Rename Files */
743
- rename: {
744
- json : { extname : '.json' }
739
+
745
740
  },
746
741
 
747
- /* Copy Install Folders */
748
- wrench: {
749
-
750
- // overwrite existing files update & install (default theme / definition)
751
- overwrite: {
752
- forceDelete : true,
753
- excludeHiddenUnix : true,
754
- preserveFiles : false
755
- },
756
-
757
- // only create files that don't exist (site theme update)
758
- merge: {
759
- forceDelete : false,
760
- excludeHiddenUnix : true,
761
- preserveFiles : true
762
- }
763
-
764
- }
765
- }
742
+ settings: {
743
+
744
+ /* Rename Files */
745
+ rename: {
746
+ json: { extname: '.json' },
747
+ },
748
+
749
+ /* Copy Install Folders */
750
+ wrench: {
751
+
752
+ // overwrite existing files update & install (default theme / definition)
753
+ overwrite: {
754
+ forceDelete: true,
755
+ excludeHiddenUnix: true,
756
+ preserveFiles: false,
757
+ },
758
+
759
+ // only create files that don't exist (site theme update)
760
+ merge: {
761
+ forceDelete: false,
762
+ excludeHiddenUnix: true,
763
+ preserveFiles: true,
764
+ },
765
+
766
+ },
767
+ },
766
768
  };