fomantic-ui 2.9.1-beta.3 → 2.9.1-beta.30

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 (540) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +26 -0
  3. package/.eslint/no-extra-parens-rule.js +17 -0
  4. package/.eslint/package.json +11 -0
  5. package/.eslintrc.js +124 -0
  6. package/.github/workflows/ci.yml +37 -4
  7. package/.github/workflows/nightly.yml +1 -1
  8. package/.github/workflows/release.yml +1 -1
  9. package/.prettierrc.js +12 -0
  10. package/.stylelintrc.js +48 -0
  11. package/README.md +1 -1
  12. package/dist/components/accordion.css +35 -53
  13. package/dist/components/accordion.js +568 -595
  14. package/dist/components/accordion.min.css +2 -2
  15. package/dist/components/accordion.min.js +2 -2
  16. package/dist/components/ad.css +34 -45
  17. package/dist/components/ad.min.css +2 -2
  18. package/dist/components/api.js +1157 -1179
  19. package/dist/components/api.min.js +2 -2
  20. package/dist/components/breadcrumb.css +5 -5
  21. package/dist/components/breadcrumb.min.css +2 -2
  22. package/dist/components/button.css +709 -1121
  23. package/dist/components/button.min.css +2 -2
  24. package/dist/components/calendar.css +24 -27
  25. package/dist/components/calendar.js +1934 -1809
  26. package/dist/components/calendar.min.css +2 -2
  27. package/dist/components/calendar.min.js +2 -2
  28. package/dist/components/card.css +219 -365
  29. package/dist/components/card.min.css +2 -2
  30. package/dist/components/checkbox.css +119 -187
  31. package/dist/components/checkbox.js +842 -841
  32. package/dist/components/checkbox.min.css +2 -2
  33. package/dist/components/checkbox.min.js +2 -2
  34. package/dist/components/comment.css +41 -59
  35. package/dist/components/comment.min.css +2 -2
  36. package/dist/components/container.css +7 -6
  37. package/dist/components/container.min.css +2 -2
  38. package/dist/components/dimmer.css +53 -172
  39. package/dist/components/dimmer.js +706 -737
  40. package/dist/components/dimmer.min.css +2 -2
  41. package/dist/components/dimmer.min.js +2 -2
  42. package/dist/components/divider.css +43 -61
  43. package/dist/components/divider.min.css +2 -2
  44. package/dist/components/dropdown.css +252 -386
  45. package/dist/components/dropdown.js +4179 -4236
  46. package/dist/components/dropdown.min.css +2 -2
  47. package/dist/components/dropdown.min.js +2 -2
  48. package/dist/components/embed.css +18 -29
  49. package/dist/components/embed.js +645 -675
  50. package/dist/components/embed.min.css +2 -2
  51. package/dist/components/embed.min.js +2 -2
  52. package/dist/components/emoji.css +9 -9
  53. package/dist/components/emoji.min.css +1 -1
  54. package/dist/components/feed.css +35 -57
  55. package/dist/components/feed.min.css +2 -2
  56. package/dist/components/flag.css +6 -4
  57. package/dist/components/flag.min.css +2 -2
  58. package/dist/components/flyout.css +86 -141
  59. package/dist/components/flyout.js +1457 -1465
  60. package/dist/components/flyout.min.css +2 -2
  61. package/dist/components/flyout.min.js +2 -2
  62. package/dist/components/form.css +244 -339
  63. package/dist/components/form.js +2020 -2004
  64. package/dist/components/form.min.css +2 -2
  65. package/dist/components/form.min.js +2 -2
  66. package/dist/components/grid.css +172 -319
  67. package/dist/components/grid.min.css +2 -2
  68. package/dist/components/header.css +118 -142
  69. package/dist/components/header.min.css +2 -2
  70. package/dist/components/icon.css +660 -718
  71. package/dist/components/icon.min.css +2 -2
  72. package/dist/components/image.css +39 -63
  73. package/dist/components/image.min.css +2 -2
  74. package/dist/components/input.css +356 -274
  75. package/dist/components/input.min.css +2 -2
  76. package/dist/components/item.css +84 -131
  77. package/dist/components/item.min.css +2 -2
  78. package/dist/components/label.css +359 -410
  79. package/dist/components/label.min.css +2 -2
  80. package/dist/components/list.css +49 -70
  81. package/dist/components/list.min.css +2 -2
  82. package/dist/components/loader.css +67 -155
  83. package/dist/components/loader.min.css +2 -2
  84. package/dist/components/menu.css +269 -431
  85. package/dist/components/menu.min.css +1 -1
  86. package/dist/components/message.css +125 -197
  87. package/dist/components/message.min.css +2 -2
  88. package/dist/components/modal.css +119 -154
  89. package/dist/components/modal.js +1488 -1486
  90. package/dist/components/modal.min.css +2 -2
  91. package/dist/components/modal.min.js +2 -2
  92. package/dist/components/nag.css +53 -63
  93. package/dist/components/nag.js +520 -526
  94. package/dist/components/nag.min.css +2 -2
  95. package/dist/components/nag.min.js +2 -2
  96. package/dist/components/placeholder.css +22 -42
  97. package/dist/components/placeholder.min.css +2 -2
  98. package/dist/components/popup.css +423 -201
  99. package/dist/components/popup.js +1454 -1456
  100. package/dist/components/popup.min.css +2 -2
  101. package/dist/components/popup.min.js +2 -2
  102. package/dist/components/progress.css +106 -211
  103. package/dist/components/progress.js +969 -997
  104. package/dist/components/progress.min.css +2 -2
  105. package/dist/components/progress.min.js +2 -2
  106. package/dist/components/rail.css +15 -20
  107. package/dist/components/rail.min.css +1 -1
  108. package/dist/components/rating.css +80 -121
  109. package/dist/components/rating.js +505 -523
  110. package/dist/components/rating.min.css +2 -2
  111. package/dist/components/rating.min.js +2 -2
  112. package/dist/components/reset.css +8 -13
  113. package/dist/components/reset.min.css +2 -2
  114. package/dist/components/reveal.css +44 -83
  115. package/dist/components/reveal.min.css +2 -2
  116. package/dist/components/search.css +69 -98
  117. package/dist/components/search.js +1493 -1534
  118. package/dist/components/search.min.css +2 -2
  119. package/dist/components/search.min.js +2 -2
  120. package/dist/components/segment.css +148 -224
  121. package/dist/components/segment.min.css +2 -2
  122. package/dist/components/shape.css +14 -30
  123. package/dist/components/shape.js +781 -810
  124. package/dist/components/shape.min.css +2 -2
  125. package/dist/components/shape.min.js +2 -2
  126. package/dist/components/sidebar.css +103 -206
  127. package/dist/components/sidebar.js +1061 -1099
  128. package/dist/components/sidebar.min.css +2 -2
  129. package/dist/components/sidebar.min.js +2 -2
  130. package/dist/components/site.css +28 -41
  131. package/dist/components/site.js +436 -476
  132. package/dist/components/site.min.css +2 -2
  133. package/dist/components/site.min.js +2 -2
  134. package/dist/components/slider.css +93 -121
  135. package/dist/components/slider.js +1310 -1311
  136. package/dist/components/slider.min.css +1 -1
  137. package/dist/components/slider.min.js +2 -2
  138. package/dist/components/state.js +639 -657
  139. package/dist/components/state.min.js +2 -2
  140. package/dist/components/statistic.css +75 -116
  141. package/dist/components/statistic.min.css +2 -2
  142. package/dist/components/step.css +77 -150
  143. package/dist/components/step.min.css +2 -2
  144. package/dist/components/sticky.css +1 -5
  145. package/dist/components/sticky.js +848 -901
  146. package/dist/components/sticky.min.css +2 -2
  147. package/dist/components/sticky.min.js +2 -2
  148. package/dist/components/tab.css +10 -14
  149. package/dist/components/tab.js +922 -965
  150. package/dist/components/tab.min.css +2 -2
  151. package/dist/components/tab.min.js +2 -2
  152. package/dist/components/table.css +547 -774
  153. package/dist/components/table.min.css +2 -2
  154. package/dist/components/text.css +32 -32
  155. package/dist/components/text.min.css +1 -1
  156. package/dist/components/toast.css +69 -147
  157. package/dist/components/toast.js +910 -884
  158. package/dist/components/toast.min.css +2 -2
  159. package/dist/components/toast.min.js +2 -2
  160. package/dist/components/transition.css +369 -1280
  161. package/dist/components/transition.js +1047 -1077
  162. package/dist/components/transition.min.css +2 -2
  163. package/dist/components/transition.min.js +2 -2
  164. package/dist/components/visibility.js +1213 -1245
  165. package/dist/components/visibility.min.js +2 -2
  166. package/dist/semantic.css +5637 -8398
  167. package/dist/semantic.js +29021 -29405
  168. package/dist/semantic.min.css +2 -2
  169. package/dist/semantic.min.js +2 -2
  170. package/dist/themes/basic/assets/fonts/icons.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  174. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  176. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  178. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  182. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  183. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  184. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  185. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  186. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  187. package/dist/themes/github/assets/fonts/octicons.woff2 +0 -0
  188. package/examples/.eslintrc.js +6 -0
  189. package/examples/assets/show-examples.js +13 -13
  190. package/examples/components/sticky-context.html +1 -1
  191. package/examples/fixed.html +2 -2
  192. package/examples/grid.html +4 -4
  193. package/examples/login.html +1 -1
  194. package/examples/responsive.html +1 -1
  195. package/examples/sticky.html +3 -3
  196. package/gulpfile.js +10 -11
  197. package/package.json +18 -11
  198. package/scripts/nightly-version.js +83 -75
  199. package/src/_site/collections/menu.overrides +1 -1
  200. package/src/_site/elements/flag.variables +2 -2
  201. package/src/_site/globals/site.variables +1 -1
  202. package/src/_site/modules/embed.variables +3 -0
  203. package/src/definitions/behaviors/api.js +1158 -1180
  204. package/src/definitions/behaviors/form.js +2019 -2003
  205. package/src/definitions/behaviors/state.js +645 -663
  206. package/src/definitions/behaviors/visibility.js +1212 -1244
  207. package/src/definitions/collections/breadcrumb.less +43 -47
  208. package/src/definitions/collections/form.less +866 -884
  209. package/src/definitions/collections/grid.less +1680 -1699
  210. package/src/definitions/collections/menu.less +1521 -1544
  211. package/src/definitions/collections/message.less +294 -298
  212. package/src/definitions/collections/table.less +1657 -1661
  213. package/src/definitions/elements/button.less +1714 -1756
  214. package/src/definitions/elements/container.less +211 -211
  215. package/src/definitions/elements/divider.less +198 -211
  216. package/src/definitions/elements/emoji.less +41 -48
  217. package/src/definitions/elements/flag.less +46 -48
  218. package/src/definitions/elements/header.less +351 -359
  219. package/src/definitions/elements/icon.less +541 -484
  220. package/src/definitions/elements/image.less +216 -227
  221. package/src/definitions/elements/input.less +692 -698
  222. package/src/definitions/elements/label.less +784 -806
  223. package/src/definitions/elements/list.less +810 -814
  224. package/src/definitions/elements/loader.less +273 -268
  225. package/src/definitions/elements/placeholder.less +173 -170
  226. package/src/definitions/elements/rail.less +93 -93
  227. package/src/definitions/elements/reveal.less +192 -198
  228. package/src/definitions/elements/segment.less +742 -749
  229. package/src/definitions/elements/step.less +423 -437
  230. package/src/definitions/elements/text.less +34 -36
  231. package/src/definitions/globals/reset.less +11 -8
  232. package/src/definitions/globals/site.js +435 -475
  233. package/src/definitions/globals/site.less +108 -110
  234. package/src/definitions/modules/accordion.js +567 -594
  235. package/src/definitions/modules/accordion.less +244 -248
  236. package/src/definitions/modules/calendar.js +1933 -1808
  237. package/src/definitions/modules/calendar.less +100 -97
  238. package/src/definitions/modules/checkbox.js +841 -840
  239. package/src/definitions/modules/checkbox.less +531 -552
  240. package/src/definitions/modules/dimmer.js +705 -736
  241. package/src/definitions/modules/dimmer.less +294 -305
  242. package/src/definitions/modules/dropdown.js +4178 -4235
  243. package/src/definitions/modules/dropdown.less +1568 -1598
  244. package/src/definitions/modules/embed.js +644 -674
  245. package/src/definitions/modules/embed.less +82 -84
  246. package/src/definitions/modules/flyout.js +1456 -1464
  247. package/src/definitions/modules/flyout.less +445 -456
  248. package/src/definitions/modules/modal.js +1487 -1485
  249. package/src/definitions/modules/modal.less +458 -467
  250. package/src/definitions/modules/nag.js +519 -525
  251. package/src/definitions/modules/nag.less +136 -149
  252. package/src/definitions/modules/popup.js +1453 -1455
  253. package/src/definitions/modules/popup.less +737 -692
  254. package/src/definitions/modules/progress.js +968 -996
  255. package/src/definitions/modules/progress.less +523 -499
  256. package/src/definitions/modules/rating.js +504 -522
  257. package/src/definitions/modules/rating.less +98 -103
  258. package/src/definitions/modules/search.js +1492 -1533
  259. package/src/definitions/modules/search.less +374 -394
  260. package/src/definitions/modules/shape.js +780 -809
  261. package/src/definitions/modules/shape.less +70 -79
  262. package/src/definitions/modules/sidebar.js +1060 -1098
  263. package/src/definitions/modules/sidebar.less +463 -476
  264. package/src/definitions/modules/slider.js +1309 -1310
  265. package/src/definitions/modules/slider.less +309 -310
  266. package/src/definitions/modules/sticky.js +864 -917
  267. package/src/definitions/modules/sticky.less +17 -25
  268. package/src/definitions/modules/tab.js +921 -964
  269. package/src/definitions/modules/tab.less +48 -54
  270. package/src/definitions/modules/toast.js +909 -883
  271. package/src/definitions/modules/toast.less +589 -589
  272. package/src/definitions/modules/transition.js +1046 -1076
  273. package/src/definitions/modules/transition.less +65 -31
  274. package/src/definitions/views/ad.less +207 -208
  275. package/src/definitions/views/card.less +955 -973
  276. package/src/definitions/views/comment.less +192 -200
  277. package/src/definitions/views/feed.less +222 -226
  278. package/src/definitions/views/item.less +437 -448
  279. package/src/definitions/views/statistic.less +273 -279
  280. package/src/semantic.less +8 -6
  281. package/src/theme.config.example +53 -53
  282. package/src/theme.less +30 -33
  283. package/src/themes/amazon/elements/button.overrides +23 -24
  284. package/src/themes/amazon/elements/button.variables +18 -23
  285. package/src/themes/amazon/globals/site.variables +16 -17
  286. package/src/themes/basic/assets/fonts/icons.woff2 +0 -0
  287. package/src/themes/basic/collections/table.overrides +0 -1
  288. package/src/themes/basic/collections/table.variables +3 -3
  289. package/src/themes/basic/elements/button.overrides +0 -1
  290. package/src/themes/basic/elements/button.variables +9 -9
  291. package/src/themes/basic/elements/icon.overrides +9 -169
  292. package/src/themes/basic/elements/icon.variables +161 -18
  293. package/src/themes/basic/elements/step.overrides +2 -2
  294. package/src/themes/basic/elements/step.variables +2 -2
  295. package/src/themes/basic/globals/reset.overrides +1 -1
  296. package/src/themes/basic/globals/reset.variables +1 -1
  297. package/src/themes/basic/modules/progress.variables +2 -2
  298. package/src/themes/basic/views/card.overrides +0 -1
  299. package/src/themes/basic/views/card.variables +6 -6
  300. package/src/themes/bookish/elements/header.overrides +4 -4
  301. package/src/themes/bookish/elements/header.variables +5 -5
  302. package/src/themes/bootstrap3/elements/button.overrides +3 -0
  303. package/src/themes/bootstrap3/elements/button.variables +20 -25
  304. package/src/themes/chubby/collections/form.overrides +9 -9
  305. package/src/themes/chubby/collections/form.variables +3 -3
  306. package/src/themes/chubby/collections/menu.overrides +3 -0
  307. package/src/themes/chubby/collections/menu.variables +3 -3
  308. package/src/themes/chubby/elements/button.overrides +8 -10
  309. package/src/themes/chubby/elements/button.variables +10 -10
  310. package/src/themes/chubby/elements/header.overrides +1 -1
  311. package/src/themes/chubby/elements/header.variables +4 -4
  312. package/src/themes/chubby/modules/accordion.overrides +2 -2
  313. package/src/themes/chubby/modules/accordion.variables +4 -4
  314. package/src/themes/chubby/views/comment.overrides +5 -5
  315. package/src/themes/chubby/views/comment.variables +11 -11
  316. package/src/themes/classic/collections/table.variables +3 -3
  317. package/src/themes/classic/elements/button.variables +36 -43
  318. package/src/themes/classic/elements/header.variables +4 -4
  319. package/src/themes/classic/modules/progress.variables +3 -3
  320. package/src/themes/classic/views/card.overrides +25 -27
  321. package/src/themes/classic/views/card.variables +7 -7
  322. package/src/themes/colored/modules/checkbox.overrides +3 -0
  323. package/src/themes/colored/modules/checkbox.variables +1 -3
  324. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  325. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  326. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  327. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  328. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  329. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  330. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  331. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  332. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  333. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  334. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  335. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  336. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  337. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  338. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  339. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  340. package/src/themes/default/collections/breadcrumb.variables +4 -4
  341. package/src/themes/default/collections/form.variables +15 -16
  342. package/src/themes/default/collections/grid.overrides +0 -1
  343. package/src/themes/default/collections/grid.variables +14 -16
  344. package/src/themes/default/collections/menu.variables +31 -45
  345. package/src/themes/default/collections/message.variables +84 -123
  346. package/src/themes/default/collections/table.overrides +3 -0
  347. package/src/themes/default/collections/table.variables +30 -34
  348. package/src/themes/default/elements/button.variables +45 -52
  349. package/src/themes/default/elements/container.variables +8 -16
  350. package/src/themes/default/elements/divider.overrides +8 -9
  351. package/src/themes/default/elements/divider.variables +5 -6
  352. package/src/themes/default/elements/emoji.overrides +0 -1
  353. package/src/themes/default/elements/emoji.variables +3555 -3555
  354. package/src/themes/default/elements/flag.variables +1594 -1594
  355. package/src/themes/default/elements/header.overrides +0 -1
  356. package/src/themes/default/elements/header.variables +21 -21
  357. package/src/themes/default/elements/icon.variables +2023 -2009
  358. package/src/themes/default/elements/image.variables +6 -7
  359. package/src/themes/default/elements/input.variables +11 -12
  360. package/src/themes/default/elements/label.variables +25 -26
  361. package/src/themes/default/elements/list.variables +17 -21
  362. package/src/themes/default/elements/loader.variables +16 -17
  363. package/src/themes/default/elements/placeholder.variables +12 -9
  364. package/src/themes/default/elements/rail.variables +4 -5
  365. package/src/themes/default/elements/reveal.variables +1 -1
  366. package/src/themes/default/elements/segment.variables +24 -36
  367. package/src/themes/default/elements/step.overrides +4 -4
  368. package/src/themes/default/elements/step.variables +19 -22
  369. package/src/themes/default/elements/text.variables +2 -3
  370. package/src/themes/default/globals/colors.less +588 -588
  371. package/src/themes/default/globals/reset.overrides +63 -59
  372. package/src/themes/default/globals/reset.variables +1 -1
  373. package/src/themes/default/globals/site.variables +1075 -1123
  374. package/src/themes/default/globals/variation.variables +13 -4
  375. package/src/themes/default/modules/accordion.overrides +11 -11
  376. package/src/themes/default/modules/accordion.variables +15 -20
  377. package/src/themes/default/modules/calendar.variables +2 -0
  378. package/src/themes/default/modules/chatroom.variables +1 -1
  379. package/src/themes/default/modules/checkbox.overrides +8 -9
  380. package/src/themes/default/modules/checkbox.variables +24 -33
  381. package/src/themes/default/modules/dimmer.variables +14 -17
  382. package/src/themes/default/modules/dropdown.overrides +17 -17
  383. package/src/themes/default/modules/dropdown.variables +29 -31
  384. package/src/themes/default/modules/embed.variables +9 -13
  385. package/src/themes/default/modules/flyout.variables +8 -8
  386. package/src/themes/default/modules/modal.variables +64 -67
  387. package/src/themes/default/modules/nag.variables +11 -14
  388. package/src/themes/default/modules/popup.variables +14 -13
  389. package/src/themes/default/modules/progress.variables +17 -19
  390. package/src/themes/default/modules/rating.variables +10 -12
  391. package/src/themes/default/modules/search.variables +12 -17
  392. package/src/themes/default/modules/shape.variables +7 -8
  393. package/src/themes/default/modules/sidebar.variables +4 -4
  394. package/src/themes/default/modules/slider.variables +55 -54
  395. package/src/themes/default/modules/sticky.variables +1 -1
  396. package/src/themes/default/modules/toast.variables +8 -8
  397. package/src/themes/default/modules/transition.overrides +936 -915
  398. package/src/themes/default/modules/transition.variables +8 -1
  399. package/src/themes/default/views/ad.variables +1 -1
  400. package/src/themes/default/views/card.variables +33 -45
  401. package/src/themes/default/views/comment.variables +7 -9
  402. package/src/themes/default/views/feed.variables +10 -10
  403. package/src/themes/default/views/item.variables +20 -23
  404. package/src/themes/default/views/statistic.variables +8 -8
  405. package/src/themes/duo/elements/loader.variables +1 -1
  406. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  407. package/src/themes/famfamfam/elements/flag.variables +4 -4
  408. package/src/themes/fixed-width/collections/grid.variables +4 -4
  409. package/src/themes/fixed-width/modules/modal.variables +11 -13
  410. package/src/themes/flat/collections/form.overrides +9 -9
  411. package/src/themes/flat/collections/form.variables +16 -17
  412. package/src/themes/flat/globals/site.variables +69 -74
  413. package/src/themes/github/assets/fonts/octicons.woff2 +0 -0
  414. package/src/themes/github/collections/breadcrumb.variables +0 -1
  415. package/src/themes/github/collections/form.overrides +7 -8
  416. package/src/themes/github/collections/form.variables +16 -18
  417. package/src/themes/github/collections/grid.variables +1 -2
  418. package/src/themes/github/collections/menu.overrides +2 -2
  419. package/src/themes/github/collections/menu.variables +24 -26
  420. package/src/themes/github/collections/message.overrides +3 -3
  421. package/src/themes/github/collections/message.variables +12 -14
  422. package/src/themes/github/collections/table.variables +2 -2
  423. package/src/themes/github/elements/button.overrides +0 -1
  424. package/src/themes/github/elements/button.variables +26 -30
  425. package/src/themes/github/elements/header.variables +2 -2
  426. package/src/themes/github/elements/icon.overrides +3 -208
  427. package/src/themes/github/elements/icon.variables +234 -19
  428. package/src/themes/github/elements/image.variables +1 -1
  429. package/src/themes/github/elements/input.overrides +16 -16
  430. package/src/themes/github/elements/input.variables +4 -5
  431. package/src/themes/github/elements/label.overrides +3 -3
  432. package/src/themes/github/elements/label.variables +0 -1
  433. package/src/themes/github/elements/segment.variables +9 -10
  434. package/src/themes/github/elements/step.overrides +13 -13
  435. package/src/themes/github/elements/step.variables +6 -6
  436. package/src/themes/github/globals/site.variables +16 -16
  437. package/src/themes/github/modules/dropdown.overrides +18 -19
  438. package/src/themes/github/modules/dropdown.variables +8 -10
  439. package/src/themes/github/modules/popup.variables +0 -2
  440. package/src/themes/gmail/collections/message.overrides +3 -0
  441. package/src/themes/gmail/collections/message.variables +4 -4
  442. package/src/themes/instagram/views/card.overrides +4 -5
  443. package/src/themes/instagram/views/card.variables +7 -8
  444. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  445. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  446. package/src/themes/material/collections/menu.overrides +1 -1
  447. package/src/themes/material/collections/menu.variables +4 -4
  448. package/src/themes/material/elements/button.overrides +7 -9
  449. package/src/themes/material/elements/button.variables +44 -46
  450. package/src/themes/material/elements/header.overrides +3 -3
  451. package/src/themes/material/elements/header.variables +8 -10
  452. package/src/themes/material/elements/icon.overrides +3 -934
  453. package/src/themes/material/elements/icon.variables +958 -18
  454. package/src/themes/material/globals/site.overrides +3 -0
  455. package/src/themes/material/globals/site.variables +83 -84
  456. package/src/themes/material/modules/dropdown.overrides +2 -2
  457. package/src/themes/material/modules/dropdown.variables +5 -5
  458. package/src/themes/material/modules/modal.overrides +3 -3
  459. package/src/themes/material/modules/modal.variables +4 -5
  460. package/src/themes/pulsar/elements/loader.overrides +23 -61
  461. package/src/themes/raised/elements/button.variables +8 -9
  462. package/src/themes/resetcss/globals/reset.overrides +115 -33
  463. package/src/themes/resetcss/globals/reset.variables +1 -1
  464. package/src/themes/round/elements/button.overrides +3 -0
  465. package/src/themes/round/elements/button.variables +33 -38
  466. package/src/themes/rtl/globals/site.overrides +1 -1
  467. package/src/themes/rtl/globals/site.variables +5 -6
  468. package/src/themes/striped/modules/progress.overrides +20 -16
  469. package/src/themes/systemfont/globals/reset.overrides +1 -1
  470. package/src/themes/systemfont/globals/site.variables +6 -6
  471. package/src/themes/timeline/views/feed.overrides +12 -12
  472. package/src/themes/timeline/views/feed.variables +8 -8
  473. package/src/themes/twitter/elements/button.overrides +4 -5
  474. package/src/themes/twitter/elements/button.variables +17 -18
  475. package/src/themes/twitter/elements/emoji.variables +3555 -3555
  476. package/tasks/.eslintrc.js +9 -0
  477. package/tasks/README.md +2 -4
  478. package/tasks/admin/components/create.js +268 -277
  479. package/tasks/admin/components/init.js +123 -130
  480. package/tasks/admin/components/update.js +151 -159
  481. package/tasks/admin/distributions/create.js +183 -189
  482. package/tasks/admin/distributions/init.js +125 -132
  483. package/tasks/admin/distributions/update.js +147 -154
  484. package/tasks/admin/publish.js +5 -9
  485. package/tasks/admin/register.js +37 -39
  486. package/tasks/admin/release.js +8 -12
  487. package/tasks/build/assets.js +43 -40
  488. package/tasks/build/css.js +230 -217
  489. package/tasks/build/javascript.js +120 -114
  490. package/tasks/build.js +11 -11
  491. package/tasks/check-install.js +15 -17
  492. package/tasks/clean.js +6 -6
  493. package/tasks/collections/README.md +3 -5
  494. package/tasks/collections/admin.js +34 -36
  495. package/tasks/collections/build.js +18 -20
  496. package/tasks/collections/docs.js +10 -12
  497. package/tasks/collections/install.js +10 -12
  498. package/tasks/collections/rtl.js +9 -11
  499. package/tasks/collections/various.js +9 -11
  500. package/tasks/config/admin/github.js +17 -19
  501. package/tasks/config/admin/oauth.example.js +4 -4
  502. package/tasks/config/admin/release.js +98 -98
  503. package/tasks/config/admin/templates/README.md +8 -8
  504. package/tasks/config/admin/templates/bower.json +3 -2
  505. package/tasks/config/admin/templates/component-package.js +9 -10
  506. package/tasks/config/admin/templates/css-package.js +19 -21
  507. package/tasks/config/admin/templates/less-package.js +12 -14
  508. package/tasks/config/admin/templates/package.json +5 -5
  509. package/tasks/config/defaults.js +116 -116
  510. package/tasks/config/docs.js +23 -23
  511. package/tasks/config/npm/gulpfile.js +13 -14
  512. package/tasks/config/project/config.js +124 -136
  513. package/tasks/config/project/install.js +722 -719
  514. package/tasks/config/project/release.js +34 -41
  515. package/tasks/config/tasks.js +168 -167
  516. package/tasks/config/user.js +28 -29
  517. package/tasks/docs/build.js +100 -96
  518. package/tasks/docs/metadata.js +91 -98
  519. package/tasks/docs/serve.js +84 -82
  520. package/tasks/install.js +373 -382
  521. package/tasks/rtl/build.js +2 -4
  522. package/tasks/rtl/watch.js +2 -4
  523. package/tasks/version.js +4 -6
  524. package/tasks/watch.js +29 -31
  525. package/test/.eslintrc.js +23 -0
  526. package/test/meteor/assets.js +11 -14
  527. package/test/meteor/fonts.js +12 -13
  528. package/test/modules/accordion.spec.js +6 -8
  529. package/test/modules/checkbox.spec.js +5 -7
  530. package/test/modules/dropdown.spec.js +5 -7
  531. package/test/modules/modal.spec.js +6 -8
  532. package/test/modules/module.spec.js +158 -178
  533. package/test/modules/popup.spec.js +5 -7
  534. package/test/modules/search.spec.js +5 -7
  535. package/test/modules/shape.spec.js +5 -7
  536. package/test/modules/sidebar.spec.js +5 -7
  537. package/test/modules/tab.spec.js +6 -8
  538. package/test/modules/transition.spec.js +5 -7
  539. package/test/modules/video.spec.js +5 -7
  540. package/.github/workflows/codeql.yml +0 -68
package/tasks/install.js CHANGED
@@ -7,434 +7,425 @@
7
7
 
8
8
  For more notes
9
9
 
10
- * Runs automatically after npm update (hooks)
11
- * (NPM) Install - Will ask for where to put semantic (outside pm folder)
12
- * (NPM) Upgrade - Will look for semantic install, copy over files and update if new version
10
+ * (NPM) Install - Will ask for where to put fomantic (outside pm folder)
11
+ * (NPM) Upgrade - Will look for fomantic install, copy over files and update if new version
13
12
  * Standard installer runs asking for paths to site files etc
14
-
15
13
  */
16
14
 
17
- var
18
- gulp = require('gulp'),
19
-
20
- // node dependencies
21
- console = require('better-console'),
22
- extend = require('extend'),
23
- fs = require('fs'),
24
- mkdirp = require('mkdirp'),
25
- path = require('path'),
26
-
27
- // gulp dependencies
28
- chmod = require('gulp-chmod'),
29
- del = require('del'),
30
- jsonEditor = require('gulp-json-editor'),
31
- plumber = require('gulp-plumber'),
32
- inquirer = require('inquirer'),
33
- rename = require('gulp-rename'),
34
- replace = require('gulp-replace'),
35
- requireDotFile = require('require-dot-file'),
36
- wrench = require('wrench-sui'),
37
-
38
- // install config
39
- install = require('./config/project/install'),
40
-
41
- // user config
42
- config = require('./config/user'),
43
-
44
- // release config (name/title/etc)
45
- release = require('./config/project/release'),
46
-
47
- // shorthand
48
- questions = install.questions,
49
- files = install.files,
50
- folders = install.folders,
51
- regExp = install.regExp,
52
- settings = install.settings,
53
- source = install.source
15
+ const
16
+ gulp = require('gulp'),
17
+
18
+ // node dependencies
19
+ console = require('better-console'),
20
+ extend = require('extend'),
21
+ fs = require('fs'),
22
+ mkdirp = require('mkdirp'),
23
+ path = require('path'),
24
+
25
+ // gulp dependencies
26
+ chmod = require('gulp-chmod'),
27
+ del = require('del'),
28
+ jsonEditor = require('gulp-json-editor'),
29
+ plumber = require('gulp-plumber'),
30
+ inquirer = require('inquirer'),
31
+ rename = require('gulp-rename'),
32
+ replace = require('gulp-replace'),
33
+ requireDotFile = require('require-dot-file'),
34
+ wrench = require('wrench-sui'),
35
+
36
+ // install config
37
+ install = require('./config/project/install'),
38
+
39
+ // user config
40
+ config = require('./config/user'),
41
+
42
+ // release config (name/title/etc)
43
+ release = require('./config/project/release'),
44
+
45
+ // shorthand
46
+ questions = install.questions,
47
+ files = install.files,
48
+ folders = install.folders,
49
+ regExp = install.regExp,
50
+ settings = install.settings,
51
+ source = install.source
54
52
  ;
55
53
 
56
54
  // Export install task
57
55
  module.exports = function (callback) {
58
-
59
- var
60
- currentConfig = requireDotFile('semantic.json', process.cwd()),
61
- manager = install.getPackageManager(),
62
- rootQuestions = questions.root,
63
- installFolder = false,
64
- answers
65
- ;
66
-
67
- console.clear();
68
-
69
- /* Test NPM install
70
- manager = {
71
- name : 'NPM',
72
- root : path.normalize(__dirname + '/../')
73
- };
74
- */
75
-
76
-
77
- /* Don't do end user config if SUI is a sub-module */
78
- if (install.isSubModule()) {
79
- console.info('SUI is a sub-module, skipping end-user install');
80
- callback();
81
- return;
82
- }
83
-
84
- /*-----------------
85
- Update SUI
86
- -----------------*/
87
-
88
- // run update scripts if semantic.json exists
89
- if (currentConfig && manager.name === 'NPM') {
90
-
91
- var
92
- updateFolder = path.join(manager.root, currentConfig.base),
93
- updatePaths = {
94
- config : path.join(manager.root, files.config),
95
- tasks : path.join(updateFolder, folders.tasks),
96
- themeImport : path.join(updateFolder, folders.themeImport),
97
- definition : path.join(currentConfig.paths.source.definitions),
98
- site : path.join(currentConfig.paths.source.site),
99
- theme : path.join(currentConfig.paths.source.themes),
100
- defaultTheme: path.join(currentConfig.paths.source.themes, folders.defaultTheme)
101
- }
56
+ let
57
+ currentConfig = requireDotFile('semantic.json', process.cwd()),
58
+ manager = install.getPackageManager(),
59
+ rootQuestions = questions.root,
60
+ installFolder = false,
61
+ answers
102
62
  ;
103
63
 
104
- // duck-type if there is a project installed
105
- if (fs.existsSync(updatePaths.definition)) {
106
-
107
- // perform update if new version
108
- if (currentConfig.version !== release.version) {
109
- console.log('Updating Semantic UI from ' + currentConfig.version + ' to ' + release.version);
64
+ console.clear();
110
65
 
111
- console.info('Updating ui definitions...');
112
- wrench.copyDirSyncRecursive(source.definitions, updatePaths.definition, settings.wrench.overwrite);
66
+ /* Test NPM install
67
+ manager = {
68
+ name: 'NPM',
69
+ root: path.normalize(__dirname + '/../'),
70
+ }; */
113
71
 
114
- console.info('Updating default theme...');
115
- wrench.copyDirSyncRecursive(source.themes, updatePaths.theme, settings.wrench.merge);
116
- wrench.copyDirSyncRecursive(source.defaultTheme, updatePaths.defaultTheme, settings.wrench.overwrite);
72
+ /* Don't do end user config if SUI is a sub-module */
73
+ if (install.isSubModule()) {
74
+ console.info('SUI is a sub-module, skipping end-user install');
75
+ callback();
117
76
 
118
- console.info('Updating tasks...');
119
- wrench.copyDirSyncRecursive(source.tasks, updatePaths.tasks, settings.wrench.overwrite);
77
+ return;
78
+ }
120
79
 
121
- console.info('Updating gulpfile.js');
122
- gulp.src(source.userGulpFile)
123
- .pipe(plumber())
124
- .pipe(gulp.dest(updateFolder))
80
+ /* -----------------
81
+ Update SUI
82
+ ----------------- */
83
+
84
+ // run update scripts if semantic.json exists
85
+ if (currentConfig && manager.name === 'NPM') {
86
+ let
87
+ updateFolder = path.join(manager.root, currentConfig.base),
88
+ updatePaths = {
89
+ config: path.join(manager.root, files.config),
90
+ tasks: path.join(updateFolder, folders.tasks),
91
+ themeImport: path.join(updateFolder, folders.themeImport),
92
+ definition: path.join(currentConfig.paths.source.definitions),
93
+ site: path.join(currentConfig.paths.source.site),
94
+ theme: path.join(currentConfig.paths.source.themes),
95
+ defaultTheme: path.join(currentConfig.paths.source.themes, folders.defaultTheme),
96
+ }
125
97
  ;
126
98
 
127
- // copy theme import
128
- console.info('Updating theme import file');
129
- gulp.src(source.themeImport)
130
- .pipe(plumber())
131
- .pipe(gulp.dest(updatePaths.themeImport))
132
- ;
99
+ // duck-type if there is a project installed
100
+ if (fs.existsSync(updatePaths.definition)) {
101
+ // perform update if new version
102
+ if (currentConfig.version !== release.version) {
103
+ console.log('Updating Fomantic UI from ' + currentConfig.version + ' to ' + release.version);
133
104
 
134
- console.info('Adding new site theme files...');
135
- wrench.copyDirSyncRecursive(source.site, updatePaths.site, settings.wrench.merge);
105
+ console.info('Updating ui definitions...');
106
+ wrench.copyDirSyncRecursive(source.definitions, updatePaths.definition, settings.wrench.overwrite);
136
107
 
137
- console.info('Updating version...');
108
+ console.info('Updating default theme...');
109
+ wrench.copyDirSyncRecursive(source.themes, updatePaths.theme, settings.wrench.merge);
110
+ wrench.copyDirSyncRecursive(source.defaultTheme, updatePaths.defaultTheme, settings.wrench.overwrite);
138
111
 
139
- // update version number in semantic.json
140
- gulp.src(updatePaths.config)
141
- .pipe(plumber())
142
- .pipe(rename(settings.rename.json)) // preserve file extension
143
- .pipe(jsonEditor({
144
- version: release.version
145
- }))
146
- .pipe(gulp.dest(manager.root))
147
- ;
112
+ console.info('Updating tasks...');
113
+ wrench.copyDirSyncRecursive(source.tasks, updatePaths.tasks, settings.wrench.overwrite);
148
114
 
149
- console.info('Update complete! Run "\x1b[92mgulp build\x1b[0m" to rebuild dist/ files.');
115
+ console.info('Updating gulpfile.js');
116
+ gulp.src(source.userGulpFile)
117
+ .pipe(plumber())
118
+ .pipe(gulp.dest(updateFolder))
119
+ ;
150
120
 
151
- callback();
152
- return;
153
- } else {
154
- console.log('Current version of Semantic UI already installed');
155
- callback();
156
- return;
157
- }
121
+ // copy theme import
122
+ console.info('Updating theme import file');
123
+ gulp.src(source.themeImport)
124
+ .pipe(plumber())
125
+ .pipe(gulp.dest(updatePaths.themeImport))
126
+ ;
158
127
 
159
- } else {
160
- console.error('Cannot locate files to update at path: ', updatePaths.definition);
161
- console.log('Running installer');
162
- }
128
+ console.info('Adding new site theme files...');
129
+ wrench.copyDirSyncRecursive(source.site, updatePaths.site, settings.wrench.merge);
163
130
 
164
- }
131
+ console.info('Updating version...');
165
132
 
166
- /*--------------
167
- Determine Root
168
- ---------------*/
133
+ // update version number in semantic.json
134
+ gulp.src(updatePaths.config)
135
+ .pipe(plumber())
136
+ .pipe(rename(settings.rename.json)) // preserve file extension
137
+ .pipe(jsonEditor({
138
+ version: release.version,
139
+ }))
140
+ .pipe(gulp.dest(manager.root))
141
+ ;
169
142
 
170
- // PM that supports Build Tools (NPM Only Now)
171
- if (manager.name === 'NPM') {
172
- rootQuestions[0].message = rootQuestions[0].message
173
- .replace('{packageMessage}', 'We detected you are using ' + manager.name + ' Nice!')
174
- .replace('{root}', manager.root)
175
- ;
176
- // set default path to detected PM root
177
- rootQuestions[0].default = manager.root;
178
- rootQuestions[1].default = manager.root;
179
-
180
- // insert PM questions after "Install Type" question
181
- Array.prototype.splice.apply(questions.setup, [2, 0].concat(rootQuestions));
182
-
183
- // omit cleanup questions for managed install
184
- questions.cleanup = [];
185
- }
186
-
187
-
188
- /*--------------
189
- Create SUI
190
- ---------------*/
191
-
192
- gulp.task('run setup', function (callback) {
193
-
194
- // If auto-install is switched on, we skip the configuration section and simply reuse the configuration from semantic.json
195
- if (install.shouldAutoInstall()) {
196
- answers = {
197
- overwrite : 'yes',
198
- install : 'auto',
199
- useRoot : true,
200
- semanticRoot: currentConfig.base
201
- };
202
- callback();
203
- } else {
204
- return inquirer.prompt(questions.setup)
205
- .then((setupAnswers) => {
206
- // hoist
207
- answers = setupAnswers;
208
- });
209
- }
210
- });
143
+ console.info('Update complete! Run "\u001B[92mgulp build\u001B[0m" to rebuild dist/ files.');
211
144
 
212
- gulp.task('create install files', function (callback) {
145
+ callback();
213
146
 
214
- /*--------------
215
- Exit Conditions
216
- ---------------*/
147
+ return;
148
+ }
149
+
150
+ console.log('Current version of Fomantic UI already installed');
151
+ callback();
217
152
 
218
- // if config exists and user specifies not to proceed
219
- if (answers.overwrite !== undefined && answers.overwrite == 'no') {
220
- callback();
221
- return;
153
+ return;
154
+ }
155
+
156
+ console.error('Cannot locate files to update at path:', updatePaths.definition);
157
+ console.log('Running installer');
222
158
  }
223
- console.clear();
224
- if (install.shouldAutoInstall()) {
225
- console.log('Auto-Installing (Without User Interaction)');
226
- } else {
227
- console.log('Installing');
159
+
160
+ /* --------------
161
+ Determine Root
162
+ --------------- */
163
+
164
+ // PM that supports Build Tools (NPM Only Now)
165
+ if (manager.name === 'NPM') {
166
+ rootQuestions[0].message = rootQuestions[0].message
167
+ .replace('{packageMessage}', 'We detected you are using ' + manager.name + ' Nice!')
168
+ .replace('{root}', manager.root)
169
+ ;
170
+ // set default path to detected PM root
171
+ rootQuestions[0].default = manager.root;
172
+ rootQuestions[1].default = manager.root;
173
+
174
+ // insert PM questions after "Install Type" question
175
+ Array.prototype.splice.apply(questions.setup, [2, 0].concat(rootQuestions));
176
+
177
+ // omit cleanup questions for managed install
178
+ questions.cleanup = [];
228
179
  }
229
- console.log('------------------------------');
230
180
 
181
+ /* --------------
182
+ Create SUI
183
+ --------------- */
184
+
185
+ gulp.task('run setup', function (callback) {
186
+ // If auto-install is switched on, we skip the configuration section and simply reuse the configuration from semantic.json
187
+ if (install.shouldAutoInstall()) {
188
+ answers = {
189
+ overwrite: 'yes',
190
+ install: 'auto',
191
+ useRoot: true,
192
+ semanticRoot: currentConfig.base,
193
+ };
194
+ callback();
195
+ } else {
196
+ return inquirer.prompt(questions.setup)
197
+ .then((setupAnswers) => {
198
+ // hoist
199
+ answers = setupAnswers;
200
+ })
201
+ ;
202
+ }
203
+ });
231
204
 
232
- /*--------------
233
- Paths
234
- ---------------*/
205
+ gulp.task('create install files', function (callback) {
206
+ /* --------------
207
+ Exit Conditions
208
+ --------------- */
235
209
 
236
- var
237
- installPaths = {
238
- config : files.config,
239
- configFolder : folders.config,
240
- site : answers.site || folders.site,
241
- themeConfig : files.themeConfig,
242
- themeConfigFolder: folders.themeConfig
243
- }
244
- ;
210
+ // if config exists and user specifies not to proceed
211
+ if (answers.overwrite !== undefined && answers.overwrite === 'no') {
212
+ callback();
245
213
 
246
- /*--------------
247
- NPM Install
248
- ---------------*/
214
+ return;
215
+ }
216
+ console.clear();
217
+ if (install.shouldAutoInstall()) {
218
+ console.log('Auto-Installing (Without User Interaction)');
219
+ } else {
220
+ console.log('Installing');
221
+ }
222
+ console.log('------------------------------');
223
+
224
+ /* --------------
225
+ Paths
226
+ --------------- */
227
+
228
+ let
229
+ installPaths = {
230
+ config: files.config,
231
+ configFolder: folders.config,
232
+ site: answers.site || folders.site,
233
+ themeConfig: files.themeConfig,
234
+ themeConfigFolder: folders.themeConfig,
235
+ }
236
+ ;
237
+
238
+ /* --------------
239
+ NPM Install
240
+ --------------- */
241
+
242
+ // Check if PM install
243
+ if (manager && (answers.useRoot || answers.customRoot)) {
244
+ // Set root to custom root path if set
245
+ if (answers.customRoot) {
246
+ if (answers.customRoot === '') {
247
+ console.log('Unable to proceed, invalid project root');
248
+ callback();
249
+
250
+ return;
251
+ }
252
+ manager.root = answers.customRoot;
253
+ }
249
254
 
250
- // Check if PM install
251
- if (manager && (answers.useRoot || answers.customRoot)) {
255
+ // special install paths only for PM install
256
+ installPaths = extend(false, {}, installPaths, {
257
+ definition: folders.definitions,
258
+ lessImport: folders.lessImport,
259
+ tasks: folders.tasks,
260
+ theme: folders.themes,
261
+ defaultTheme: path.join(folders.themes, folders.defaultTheme),
262
+ themeImport: folders.themeImport,
263
+ });
264
+
265
+ // add project root to semantic root
266
+ installFolder = path.join(manager.root, answers.semanticRoot);
267
+
268
+ // add install folder to all output paths
269
+ for (let destination in installPaths) {
270
+ if (Object.prototype.hasOwnProperty.call(installPaths, destination)) {
271
+ // config goes in project root, rest in install folder
272
+ installPaths[destination] = destination === 'config' || destination === 'configFolder'
273
+ ? path.normalize(path.join(manager.root, installPaths[destination]))
274
+ : path.normalize(path.join(installFolder, installPaths[destination]));
275
+ }
276
+ }
277
+
278
+ // create project folders
279
+ try {
280
+ mkdirp.sync(installFolder);
281
+ mkdirp.sync(installPaths.definition);
282
+ mkdirp.sync(installPaths.theme);
283
+ mkdirp.sync(installPaths.tasks);
284
+ } catch (error) {
285
+ console.error('NPM does not have permissions to create folders at your specified path. Adjust your folders permissions and run "npm install" again');
286
+ }
252
287
 
253
- // Set root to custom root path if set
254
- if (answers.customRoot) {
255
- if (answers.customRoot === '') {
256
- console.log('Unable to proceed, invalid project root');
257
- callback();
258
- return;
288
+ console.log('Installing to \u001B[92m' + answers.semanticRoot + '\u001B[0m');
289
+
290
+ console.info('Copying UI definitions');
291
+ wrench.copyDirSyncRecursive(source.definitions, installPaths.definition, settings.wrench.overwrite);
292
+
293
+ console.info('Copying UI themes');
294
+ wrench.copyDirSyncRecursive(source.themes, installPaths.theme, settings.wrench.merge);
295
+ wrench.copyDirSyncRecursive(source.defaultTheme, installPaths.defaultTheme, settings.wrench.overwrite);
296
+
297
+ console.info('Copying gulp tasks');
298
+ wrench.copyDirSyncRecursive(source.tasks, installPaths.tasks, settings.wrench.overwrite);
299
+
300
+ // copy theme import
301
+ console.info('Adding theme files');
302
+ gulp.src(source.themeImport)
303
+ .pipe(plumber())
304
+ .pipe(gulp.dest(installPaths.themeImport))
305
+ ;
306
+ gulp.src(source.lessImport)
307
+ .pipe(plumber())
308
+ .pipe(gulp.dest(installPaths.lessImport))
309
+ ;
310
+
311
+ // create gulp file
312
+ console.info('Creating gulpfile.js');
313
+ gulp.src(source.userGulpFile)
314
+ .pipe(plumber())
315
+ .pipe(gulp.dest(installFolder))
316
+ ;
259
317
  }
260
- manager.root = answers.customRoot;
261
- }
262
-
263
- // special install paths only for PM install
264
- installPaths = extend(false, {}, installPaths, {
265
- definition : folders.definitions,
266
- lessImport : folders.lessImport,
267
- tasks : folders.tasks,
268
- theme : folders.themes,
269
- defaultTheme: path.join(folders.themes, folders.defaultTheme),
270
- themeImport : folders.themeImport
271
- });
272
-
273
- // add project root to semantic root
274
- installFolder = path.join(manager.root, answers.semanticRoot);
275
-
276
- // add install folder to all output paths
277
- for (var destination in installPaths) {
278
- if (installPaths.hasOwnProperty(destination)) {
279
- // config goes in project root, rest in install folder
280
- installPaths[destination] = (destination == 'config' || destination == 'configFolder')
281
- ? path.normalize(path.join(manager.root, installPaths[destination]))
282
- : path.normalize(path.join(installFolder, installPaths[destination]))
283
- ;
318
+
319
+ /* --------------
320
+ Site Theme
321
+ --------------- */
322
+
323
+ // Copy _site templates folder to destination
324
+ if (fs.existsSync(installPaths.site)) {
325
+ console.info('Site folder exists, merging files (no overwrite)', installPaths.site);
326
+ } else {
327
+ console.info('Creating site theme folder', installPaths.site);
284
328
  }
285
- }
286
-
287
- // create project folders
288
- try {
289
- mkdirp.sync(installFolder);
290
- mkdirp.sync(installPaths.definition);
291
- mkdirp.sync(installPaths.theme);
292
- mkdirp.sync(installPaths.tasks);
293
- } catch (error) {
294
- console.error('NPM does not have permissions to create folders at your specified path. Adjust your folders permissions and run "npm install" again');
295
- }
296
-
297
- console.log('Installing to \x1b[92m' + answers.semanticRoot + '\x1b[0m');
298
-
299
- console.info('Copying UI definitions');
300
- wrench.copyDirSyncRecursive(source.definitions, installPaths.definition, settings.wrench.overwrite);
301
-
302
- console.info('Copying UI themes');
303
- wrench.copyDirSyncRecursive(source.themes, installPaths.theme, settings.wrench.merge);
304
- wrench.copyDirSyncRecursive(source.defaultTheme, installPaths.defaultTheme, settings.wrench.overwrite);
305
-
306
- console.info('Copying gulp tasks');
307
- wrench.copyDirSyncRecursive(source.tasks, installPaths.tasks, settings.wrench.overwrite);
308
-
309
- // copy theme import
310
- console.info('Adding theme files');
311
- gulp.src(source.themeImport)
312
- .pipe(plumber())
313
- .pipe(gulp.dest(installPaths.themeImport))
314
- ;
315
- gulp.src(source.lessImport)
316
- .pipe(plumber())
317
- .pipe(gulp.dest(installPaths.lessImport))
318
- ;
319
-
320
- // create gulp file
321
- console.info('Creating gulpfile.js');
322
- gulp.src(source.userGulpFile)
323
- .pipe(plumber())
324
- .pipe(gulp.dest(installFolder))
325
- ;
329
+ wrench.copyDirSyncRecursive(source.site, installPaths.site, settings.wrench.merge);
330
+
331
+ /* --------------
332
+ Theme Config
333
+ --------------- */
334
+
335
+ gulp.task('create theme.config', function () {
336
+ let
337
+ // determine path to site theme folder from theme config
338
+ // force CSS path variable to use forward slashes for paths
339
+ pathToSite = path.relative(path.resolve(installPaths.themeConfigFolder), path.resolve(installPaths.site)).replace(/\\/g, '/'),
340
+ siteVariable = "@siteFolder: '" + pathToSite + "/';"
341
+ ;
342
+
343
+ // rewrite site variable in theme.less
344
+ console.info('Adjusting @siteFolder to:', pathToSite + '/');
345
+
346
+ if (fs.existsSync(installPaths.themeConfig)) {
347
+ console.info('Modifying src/theme.config (LESS config)', installPaths.themeConfig);
348
+
349
+ return gulp.src(installPaths.themeConfig)
350
+ .pipe(plumber())
351
+ .pipe(replace(regExp.siteVariable, siteVariable))
352
+ .pipe(gulp.dest(installPaths.themeConfigFolder))
353
+ ;
354
+ }
326
355
 
327
- }
356
+ console.info('Creating src/theme.config (LESS config)', installPaths.themeConfig);
328
357
 
358
+ return gulp.src(source.themeConfig)
359
+ .pipe(plumber())
360
+ .pipe(rename({ extname: '' }))
361
+ .pipe(replace(regExp.siteVariable, siteVariable))
362
+ .pipe(gulp.dest(installPaths.themeConfigFolder))
363
+ ;
364
+ });
329
365
 
330
- /*--------------
331
- Site Theme
332
- ---------------*/
366
+ /* --------------
367
+ Semantic.json
368
+ --------------- */
369
+
370
+ gulp.task('create semantic.json', function () {
371
+ let
372
+ jsonConfig = install.createJSON(answers)
373
+ ;
374
+
375
+ // adjust variables in theme.less
376
+ if (fs.existsSync(installPaths.config)) {
377
+ console.info('Extending config file (semantic.json)', installPaths.config);
378
+
379
+ return gulp.src(installPaths.config)
380
+ .pipe(plumber())
381
+ .pipe(rename(settings.rename.json)) // preserve file extension
382
+ .pipe(jsonEditor(jsonConfig))
383
+ .pipe(gulp.dest(installPaths.configFolder))
384
+ ;
385
+ }
333
386
 
334
- // Copy _site templates folder to destination
335
- if (fs.existsSync(installPaths.site)) {
336
- console.info('Site folder exists, merging files (no overwrite)', installPaths.site);
337
- } else {
338
- console.info('Creating site theme folder', installPaths.site);
339
- }
340
- wrench.copyDirSyncRecursive(source.site, installPaths.site, settings.wrench.merge);
341
-
342
- /*--------------
343
- Theme Config
344
- ---------------*/
345
-
346
- gulp.task('create theme.config', function () {
347
- var
348
- // determine path to site theme folder from theme config
349
- // force CSS path variable to use forward slashes for paths
350
- pathToSite = path.relative(path.resolve(installPaths.themeConfigFolder), path.resolve(installPaths.site)).replace(/\\/g, '/'),
351
- siteVariable = "@siteFolder : '" + pathToSite + "/';"
352
- ;
353
-
354
- // rewrite site variable in theme.less
355
- console.info('Adjusting @siteFolder to: ', pathToSite + '/');
356
-
357
- if (fs.existsSync(installPaths.themeConfig)) {
358
- console.info('Modifying src/theme.config (LESS config)', installPaths.themeConfig);
359
- return gulp.src(installPaths.themeConfig)
360
- .pipe(plumber())
361
- .pipe(replace(regExp.siteVariable, siteVariable))
362
- .pipe(gulp.dest(installPaths.themeConfigFolder))
363
- ;
364
- } else {
365
- console.info('Creating src/theme.config (LESS config)', installPaths.themeConfig);
366
- return gulp.src(source.themeConfig)
367
- .pipe(plumber())
368
- .pipe(rename({extname: ''}))
369
- .pipe(replace(regExp.siteVariable, siteVariable))
370
- .pipe(gulp.dest(installPaths.themeConfigFolder))
371
- ;
372
- }
373
- });
387
+ console.info('Creating config file (semantic.json)', installPaths.config);
374
388
 
375
- /*--------------
376
- Semantic.json
377
- ---------------*/
378
-
379
- gulp.task('create semantic.json', function () {
380
-
381
- var
382
- jsonConfig = install.createJSON(answers)
383
- ;
384
-
385
- // adjust variables in theme.less
386
- if (fs.existsSync(installPaths.config)) {
387
- console.info('Extending config file (semantic.json)', installPaths.config);
388
- return gulp.src(installPaths.config)
389
- .pipe(plumber())
390
- .pipe(rename(settings.rename.json)) // preserve file extension
391
- .pipe(jsonEditor(jsonConfig))
392
- .pipe(gulp.dest(installPaths.configFolder))
393
- ;
394
- } else {
395
- console.info('Creating config file (semantic.json)', installPaths.config);
396
- return gulp.src(source.config)
397
- .pipe(plumber())
398
- .pipe(rename({extname: ''})) // remove .template from ext
399
- .pipe(jsonEditor(jsonConfig, {end_with_newline: true}))
400
- .pipe(gulp.dest(installPaths.configFolder))
401
- ;
402
- }
389
+ return gulp.src(source.config)
390
+ .pipe(plumber())
391
+ .pipe(rename({ extname: '' })) // remove .template from ext
392
+ .pipe(jsonEditor(jsonConfig, { end_with_newline: true }))
393
+ .pipe(gulp.dest(installPaths.configFolder))
394
+ ;
395
+ });
403
396
 
397
+ gulp.series('create theme.config', 'create semantic.json')(callback);
404
398
  });
405
399
 
406
- gulp.series('create theme.config', 'create semantic.json')(callback);
407
- });
408
-
409
- gulp.task('clean up install', function (callback) {
410
-
411
- // Completion Message
412
- if (installFolder && !install.shouldAutoInstall()) {
413
- console.log('\n Setup Complete! \n Installing Peer Dependencies. \x1b[0;31mPlease refrain from ctrl + c\x1b[0m... \n After completion navigate to \x1b[92m' + answers.semanticRoot + '\x1b[0m and run "\x1b[92mgulp build\x1b[0m" to build');
414
- callback();
415
- } else {
416
- console.log('');
417
- console.log('');
418
-
419
- // If auto-install is switched on, we skip the configuration section and simply build the dependencies
420
- if (install.shouldAutoInstall()) {
421
- gulp.series('build')(callback);
422
- } else {
423
- // We don't return the inquirer promise on purpose because we handle the callback ourselves
424
- inquirer.prompt(questions.cleanup)
425
- .then((answers) => {
426
- if (answers.cleanup === 'yes') {
427
- del(install.setupFiles);
428
- }
429
- if (answers.build === 'yes') {
430
- gulp.series('build')(callback);
400
+ gulp.task('clean up install', function (callback) {
401
+ // Completion Message
402
+ if (installFolder && !install.shouldAutoInstall()) {
403
+ console.log('\n Setup Complete! \n Installing Peer Dependencies. \u001B[0;31mPlease refrain from ctrl + c\u001B[0m... \n After completion navigate to \u001B[92m' + answers.semanticRoot + '\u001B[0m and run "\u001B[92mgulp build\u001B[0m" to build');
404
+ callback();
405
+ } else {
406
+ console.log('');
407
+ console.log('');
408
+
409
+ // If auto-install is switched on, we skip the configuration section and simply build the dependencies
410
+ if (install.shouldAutoInstall()) {
411
+ gulp.series('build')(callback);
431
412
  } else {
432
- callback();
413
+ // We don't return the inquirer promise on purpose because we handle the callback ourselves
414
+ inquirer.prompt(questions.cleanup)
415
+ .then((answers) => {
416
+ if (answers.cleanup === 'yes') {
417
+ del(install.setupFiles);
418
+ }
419
+ if (answers.build === 'yes') {
420
+ gulp.series('build')(callback);
421
+ } else {
422
+ callback();
423
+ }
424
+ })
425
+ ;
433
426
  }
434
- });
435
- }
436
- }
437
- });
427
+ }
428
+ });
438
429
 
439
- gulp.series('run setup', 'create install files', 'clean up install')(callback);
430
+ gulp.series('run setup', 'create install files', 'clean up install')(callback);
440
431
  };