fomantic-ui 2.9.1-beta.8 → 2.9.1

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 (521) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +29 -0
  3. package/.eslint/no-extra-parens-rule.js +17 -0
  4. package/.eslint/package.json +11 -0
  5. package/.eslintrc.js +123 -0
  6. package/.github/auto_assign.yml +0 -1
  7. package/.github/workflows/ci.yml +37 -4
  8. package/.github/workflows/nightly.yml +1 -1
  9. package/.github/workflows/release.yml +1 -1
  10. package/.prettierrc.js +12 -0
  11. package/.stylelintrc.js +48 -0
  12. package/CHANGELOG.md +112 -0
  13. package/README.md +1 -1
  14. package/dist/components/accordion.css +35 -53
  15. package/dist/components/accordion.js +568 -595
  16. package/dist/components/accordion.min.css +2 -2
  17. package/dist/components/accordion.min.js +3 -3
  18. package/dist/components/ad.css +34 -45
  19. package/dist/components/ad.min.css +2 -2
  20. package/dist/components/api.js +1157 -1179
  21. package/dist/components/api.min.js +3 -3
  22. package/dist/components/breadcrumb.css +5 -5
  23. package/dist/components/breadcrumb.min.css +2 -2
  24. package/dist/components/button.css +709 -1111
  25. package/dist/components/button.min.css +2 -2
  26. package/dist/components/calendar.css +24 -27
  27. package/dist/components/calendar.js +1934 -1809
  28. package/dist/components/calendar.min.css +2 -2
  29. package/dist/components/calendar.min.js +3 -3
  30. package/dist/components/card.css +219 -365
  31. package/dist/components/card.min.css +2 -2
  32. package/dist/components/checkbox.css +120 -191
  33. package/dist/components/checkbox.js +842 -841
  34. package/dist/components/checkbox.min.css +2 -2
  35. package/dist/components/checkbox.min.js +3 -3
  36. package/dist/components/comment.css +41 -59
  37. package/dist/components/comment.min.css +2 -2
  38. package/dist/components/container.css +7 -6
  39. package/dist/components/container.min.css +2 -2
  40. package/dist/components/dimmer.css +53 -172
  41. package/dist/components/dimmer.js +706 -737
  42. package/dist/components/dimmer.min.css +2 -2
  43. package/dist/components/dimmer.min.js +3 -3
  44. package/dist/components/divider.css +43 -61
  45. package/dist/components/divider.min.css +2 -2
  46. package/dist/components/dropdown.css +252 -386
  47. package/dist/components/dropdown.js +4195 -4236
  48. package/dist/components/dropdown.min.css +2 -2
  49. package/dist/components/dropdown.min.js +3 -3
  50. package/dist/components/embed.css +18 -29
  51. package/dist/components/embed.js +645 -675
  52. package/dist/components/embed.min.css +2 -2
  53. package/dist/components/embed.min.js +3 -3
  54. package/dist/components/emoji.css +3556 -3556
  55. package/dist/components/emoji.min.css +1 -1
  56. package/dist/components/feed.css +35 -57
  57. package/dist/components/feed.min.css +2 -2
  58. package/dist/components/flag.css +270 -268
  59. package/dist/components/flag.min.css +2 -2
  60. package/dist/components/flyout.css +95 -141
  61. package/dist/components/flyout.js +1514 -1465
  62. package/dist/components/flyout.min.css +2 -2
  63. package/dist/components/flyout.min.js +3 -3
  64. package/dist/components/form.css +244 -339
  65. package/dist/components/form.js +2022 -2004
  66. package/dist/components/form.min.css +2 -2
  67. package/dist/components/form.min.js +3 -3
  68. package/dist/components/grid.css +183 -329
  69. package/dist/components/grid.min.css +2 -2
  70. package/dist/components/header.css +118 -142
  71. package/dist/components/header.min.css +2 -2
  72. package/dist/components/icon.css +662 -745
  73. package/dist/components/icon.min.css +2 -2
  74. package/dist/components/image.css +39 -63
  75. package/dist/components/image.min.css +2 -2
  76. package/dist/components/input.css +356 -274
  77. package/dist/components/input.min.css +2 -2
  78. package/dist/components/item.css +84 -131
  79. package/dist/components/item.min.css +2 -2
  80. package/dist/components/label.css +359 -410
  81. package/dist/components/label.min.css +2 -2
  82. package/dist/components/list.css +49 -70
  83. package/dist/components/list.min.css +2 -2
  84. package/dist/components/loader.css +67 -155
  85. package/dist/components/loader.min.css +2 -2
  86. package/dist/components/menu.css +270 -431
  87. package/dist/components/menu.min.css +1 -1
  88. package/dist/components/message.css +125 -197
  89. package/dist/components/message.min.css +2 -2
  90. package/dist/components/modal.css +120 -154
  91. package/dist/components/modal.js +1544 -1486
  92. package/dist/components/modal.min.css +2 -2
  93. package/dist/components/modal.min.js +3 -3
  94. package/dist/components/nag.css +53 -63
  95. package/dist/components/nag.js +520 -526
  96. package/dist/components/nag.min.css +2 -2
  97. package/dist/components/nag.min.js +3 -3
  98. package/dist/components/placeholder.css +22 -42
  99. package/dist/components/placeholder.min.css +2 -2
  100. package/dist/components/popup.css +424 -202
  101. package/dist/components/popup.js +1456 -1456
  102. package/dist/components/popup.min.css +2 -2
  103. package/dist/components/popup.min.js +3 -3
  104. package/dist/components/progress.css +106 -211
  105. package/dist/components/progress.js +969 -997
  106. package/dist/components/progress.min.css +2 -2
  107. package/dist/components/progress.min.js +3 -3
  108. package/dist/components/rail.css +15 -20
  109. package/dist/components/rail.min.css +1 -1
  110. package/dist/components/rating.css +80 -121
  111. package/dist/components/rating.js +507 -523
  112. package/dist/components/rating.min.css +2 -2
  113. package/dist/components/rating.min.js +3 -3
  114. package/dist/components/reset.css +8 -13
  115. package/dist/components/reset.min.css +2 -2
  116. package/dist/components/reveal.css +44 -83
  117. package/dist/components/reveal.min.css +2 -2
  118. package/dist/components/search.css +69 -98
  119. package/dist/components/search.js +1520 -1534
  120. package/dist/components/search.min.css +2 -2
  121. package/dist/components/search.min.js +3 -3
  122. package/dist/components/segment.css +148 -224
  123. package/dist/components/segment.min.css +2 -2
  124. package/dist/components/shape.css +14 -30
  125. package/dist/components/shape.js +783 -810
  126. package/dist/components/shape.min.css +2 -2
  127. package/dist/components/shape.min.js +3 -3
  128. package/dist/components/sidebar.css +103 -206
  129. package/dist/components/sidebar.js +1061 -1099
  130. package/dist/components/sidebar.min.css +2 -2
  131. package/dist/components/sidebar.min.js +3 -3
  132. package/dist/components/site.css +28 -41
  133. package/dist/components/site.js +436 -476
  134. package/dist/components/site.min.css +2 -2
  135. package/dist/components/site.min.js +3 -3
  136. package/dist/components/slider.css +93 -121
  137. package/dist/components/slider.js +1310 -1311
  138. package/dist/components/slider.min.css +1 -1
  139. package/dist/components/slider.min.js +3 -3
  140. package/dist/components/state.js +638 -657
  141. package/dist/components/state.min.js +3 -3
  142. package/dist/components/statistic.css +75 -116
  143. package/dist/components/statistic.min.css +2 -2
  144. package/dist/components/step.css +77 -150
  145. package/dist/components/step.min.css +2 -2
  146. package/dist/components/sticky.css +1 -5
  147. package/dist/components/sticky.js +847 -901
  148. package/dist/components/sticky.min.css +2 -2
  149. package/dist/components/sticky.min.js +3 -3
  150. package/dist/components/tab.css +10 -14
  151. package/dist/components/tab.js +902 -966
  152. package/dist/components/tab.min.css +2 -2
  153. package/dist/components/tab.min.js +3 -3
  154. package/dist/components/table.css +547 -774
  155. package/dist/components/table.min.css +2 -2
  156. package/dist/components/text.css +32 -32
  157. package/dist/components/text.min.css +1 -1
  158. package/dist/components/toast.css +69 -147
  159. package/dist/components/toast.js +910 -884
  160. package/dist/components/toast.min.css +2 -2
  161. package/dist/components/toast.min.js +3 -3
  162. package/dist/components/transition.css +299 -1356
  163. package/dist/components/transition.js +1048 -1077
  164. package/dist/components/transition.min.css +2 -2
  165. package/dist/components/transition.min.js +3 -3
  166. package/dist/components/visibility.js +1213 -1245
  167. package/dist/components/visibility.min.js +3 -3
  168. package/dist/semantic.css +9344 -12298
  169. package/dist/semantic.js +29181 -29423
  170. package/dist/semantic.min.css +3 -3
  171. package/dist/semantic.min.js +3 -3
  172. package/dist/themes/basic/assets/fonts/icons.woff2 +0 -0
  173. package/dist/themes/github/assets/fonts/octicons.woff2 +0 -0
  174. package/examples/.eslintrc.js +6 -0
  175. package/examples/assets/library/jquery.min.js +2 -4
  176. package/examples/assets/show-examples.js +13 -13
  177. package/examples/attached.html +1 -1
  178. package/examples/bootstrap.html +1 -1
  179. package/examples/components/button.html +1 -1
  180. package/examples/components/card.html +6 -6
  181. package/examples/components/input.html +1 -1
  182. package/examples/components/menu.html +1 -1
  183. package/examples/components/site.html +1 -1
  184. package/examples/components/sticky-context.html +2 -2
  185. package/examples/components/table.html +1 -1
  186. package/examples/fixed.html +3 -3
  187. package/examples/grid.html +5 -5
  188. package/examples/homepage.html +1 -1
  189. package/examples/login.html +2 -2
  190. package/examples/responsive.html +2 -2
  191. package/examples/sticky.html +4 -4
  192. package/examples/theming.html +1 -1
  193. package/gulpfile.js +13 -11
  194. package/package.json +17 -8
  195. package/scripts/nightly-version.js +83 -75
  196. package/src/_site/collections/menu.overrides +1 -1
  197. package/src/_site/elements/flag.variables +2 -2
  198. package/src/_site/globals/site.variables +1 -1
  199. package/src/_site/modules/embed.variables +3 -0
  200. package/src/definitions/behaviors/api.js +1158 -1180
  201. package/src/definitions/behaviors/form.js +2021 -2003
  202. package/src/definitions/behaviors/state.js +644 -663
  203. package/src/definitions/behaviors/visibility.js +1212 -1244
  204. package/src/definitions/collections/breadcrumb.less +43 -47
  205. package/src/definitions/collections/form.less +866 -884
  206. package/src/definitions/collections/grid.less +1681 -1699
  207. package/src/definitions/collections/menu.less +1522 -1544
  208. package/src/definitions/collections/message.less +294 -298
  209. package/src/definitions/collections/table.less +1657 -1661
  210. package/src/definitions/elements/button.less +1716 -1750
  211. package/src/definitions/elements/container.less +211 -211
  212. package/src/definitions/elements/divider.less +198 -211
  213. package/src/definitions/elements/emoji.less +41 -48
  214. package/src/definitions/elements/flag.less +46 -48
  215. package/src/definitions/elements/header.less +351 -359
  216. package/src/definitions/elements/icon.less +541 -484
  217. package/src/definitions/elements/image.less +216 -227
  218. package/src/definitions/elements/input.less +692 -699
  219. package/src/definitions/elements/label.less +784 -806
  220. package/src/definitions/elements/list.less +810 -814
  221. package/src/definitions/elements/loader.less +273 -268
  222. package/src/definitions/elements/placeholder.less +173 -170
  223. package/src/definitions/elements/rail.less +93 -93
  224. package/src/definitions/elements/reveal.less +192 -198
  225. package/src/definitions/elements/segment.less +742 -749
  226. package/src/definitions/elements/step.less +423 -437
  227. package/src/definitions/elements/text.less +34 -36
  228. package/src/definitions/globals/reset.less +11 -8
  229. package/src/definitions/globals/site.js +435 -475
  230. package/src/definitions/globals/site.less +108 -110
  231. package/src/definitions/modules/accordion.js +567 -594
  232. package/src/definitions/modules/accordion.less +244 -248
  233. package/src/definitions/modules/calendar.js +1933 -1808
  234. package/src/definitions/modules/calendar.less +100 -97
  235. package/src/definitions/modules/checkbox.js +841 -840
  236. package/src/definitions/modules/checkbox.less +531 -552
  237. package/src/definitions/modules/dimmer.js +705 -736
  238. package/src/definitions/modules/dimmer.less +294 -305
  239. package/src/definitions/modules/dropdown.js +4194 -4235
  240. package/src/definitions/modules/dropdown.less +1568 -1598
  241. package/src/definitions/modules/embed.js +644 -674
  242. package/src/definitions/modules/embed.less +82 -84
  243. package/src/definitions/modules/flyout.js +1513 -1464
  244. package/src/definitions/modules/flyout.less +453 -455
  245. package/src/definitions/modules/modal.js +1543 -1485
  246. package/src/definitions/modules/modal.less +459 -467
  247. package/src/definitions/modules/nag.js +519 -525
  248. package/src/definitions/modules/nag.less +136 -149
  249. package/src/definitions/modules/popup.js +1455 -1455
  250. package/src/definitions/modules/popup.less +738 -693
  251. package/src/definitions/modules/progress.js +968 -996
  252. package/src/definitions/modules/progress.less +523 -499
  253. package/src/definitions/modules/rating.js +506 -522
  254. package/src/definitions/modules/rating.less +98 -103
  255. package/src/definitions/modules/search.js +1519 -1533
  256. package/src/definitions/modules/search.less +374 -394
  257. package/src/definitions/modules/shape.js +782 -809
  258. package/src/definitions/modules/shape.less +70 -79
  259. package/src/definitions/modules/sidebar.js +1060 -1098
  260. package/src/definitions/modules/sidebar.less +463 -476
  261. package/src/definitions/modules/slider.js +1309 -1310
  262. package/src/definitions/modules/slider.less +309 -310
  263. package/src/definitions/modules/sticky.js +863 -917
  264. package/src/definitions/modules/sticky.less +17 -25
  265. package/src/definitions/modules/tab.js +901 -965
  266. package/src/definitions/modules/tab.less +48 -54
  267. package/src/definitions/modules/toast.js +909 -883
  268. package/src/definitions/modules/toast.less +589 -589
  269. package/src/definitions/modules/transition.js +1047 -1076
  270. package/src/definitions/modules/transition.less +58 -59
  271. package/src/definitions/views/ad.less +207 -208
  272. package/src/definitions/views/card.less +955 -973
  273. package/src/definitions/views/comment.less +192 -200
  274. package/src/definitions/views/feed.less +222 -226
  275. package/src/definitions/views/item.less +437 -448
  276. package/src/definitions/views/statistic.less +273 -279
  277. package/src/semantic.less +8 -6
  278. package/src/theme.config.example +53 -53
  279. package/src/theme.less +44 -35
  280. package/src/themes/amazon/elements/button.overrides +23 -24
  281. package/src/themes/amazon/elements/button.variables +18 -23
  282. package/src/themes/amazon/globals/site.variables +16 -17
  283. package/src/themes/basic/assets/fonts/icons.woff2 +0 -0
  284. package/src/themes/basic/collections/table.overrides +0 -1
  285. package/src/themes/basic/collections/table.variables +3 -3
  286. package/src/themes/basic/elements/button.overrides +0 -1
  287. package/src/themes/basic/elements/button.variables +9 -9
  288. package/src/themes/basic/elements/icon.overrides +9 -169
  289. package/src/themes/basic/elements/icon.variables +161 -18
  290. package/src/themes/basic/elements/step.overrides +2 -2
  291. package/src/themes/basic/elements/step.variables +2 -2
  292. package/src/themes/basic/globals/reset.overrides +1 -1
  293. package/src/themes/basic/globals/reset.variables +1 -1
  294. package/src/themes/basic/modules/progress.variables +2 -2
  295. package/src/themes/basic/views/card.overrides +0 -1
  296. package/src/themes/basic/views/card.variables +6 -6
  297. package/src/themes/bookish/elements/header.overrides +4 -4
  298. package/src/themes/bookish/elements/header.variables +5 -5
  299. package/src/themes/bootstrap3/elements/button.overrides +3 -0
  300. package/src/themes/bootstrap3/elements/button.variables +20 -25
  301. package/src/themes/chubby/collections/form.overrides +9 -9
  302. package/src/themes/chubby/collections/form.variables +3 -3
  303. package/src/themes/chubby/collections/menu.overrides +3 -0
  304. package/src/themes/chubby/collections/menu.variables +3 -3
  305. package/src/themes/chubby/elements/button.overrides +8 -10
  306. package/src/themes/chubby/elements/button.variables +10 -10
  307. package/src/themes/chubby/elements/header.overrides +1 -1
  308. package/src/themes/chubby/elements/header.variables +4 -4
  309. package/src/themes/chubby/modules/accordion.overrides +2 -2
  310. package/src/themes/chubby/modules/accordion.variables +4 -4
  311. package/src/themes/chubby/views/comment.overrides +5 -5
  312. package/src/themes/chubby/views/comment.variables +11 -11
  313. package/src/themes/classic/collections/table.variables +3 -3
  314. package/src/themes/classic/elements/button.variables +36 -43
  315. package/src/themes/classic/elements/header.variables +4 -4
  316. package/src/themes/classic/modules/progress.variables +3 -3
  317. package/src/themes/classic/views/card.overrides +25 -27
  318. package/src/themes/classic/views/card.variables +7 -7
  319. package/src/themes/colored/modules/checkbox.overrides +3 -0
  320. package/src/themes/colored/modules/checkbox.variables +1 -3
  321. package/src/themes/default/collections/breadcrumb.variables +4 -4
  322. package/src/themes/default/collections/form.variables +15 -16
  323. package/src/themes/default/collections/grid.overrides +0 -1
  324. package/src/themes/default/collections/grid.variables +15 -16
  325. package/src/themes/default/collections/menu.variables +31 -45
  326. package/src/themes/default/collections/message.variables +84 -123
  327. package/src/themes/default/collections/table.overrides +3 -0
  328. package/src/themes/default/collections/table.variables +30 -34
  329. package/src/themes/default/elements/button.variables +44 -53
  330. package/src/themes/default/elements/container.variables +8 -16
  331. package/src/themes/default/elements/divider.overrides +8 -9
  332. package/src/themes/default/elements/divider.variables +5 -6
  333. package/src/themes/default/elements/emoji.overrides +0 -1
  334. package/src/themes/default/elements/emoji.variables +3556 -3556
  335. package/src/themes/default/elements/flag.variables +1595 -1595
  336. package/src/themes/default/elements/header.overrides +0 -1
  337. package/src/themes/default/elements/header.variables +21 -21
  338. package/src/themes/default/elements/icon.variables +2016 -2012
  339. package/src/themes/default/elements/image.variables +6 -7
  340. package/src/themes/default/elements/input.variables +11 -12
  341. package/src/themes/default/elements/label.variables +25 -26
  342. package/src/themes/default/elements/list.variables +17 -21
  343. package/src/themes/default/elements/loader.variables +16 -17
  344. package/src/themes/default/elements/placeholder.variables +12 -9
  345. package/src/themes/default/elements/rail.variables +4 -5
  346. package/src/themes/default/elements/reveal.variables +1 -1
  347. package/src/themes/default/elements/segment.variables +24 -36
  348. package/src/themes/default/elements/step.overrides +4 -4
  349. package/src/themes/default/elements/step.variables +19 -22
  350. package/src/themes/default/elements/text.variables +2 -3
  351. package/src/themes/default/globals/colors.less +588 -588
  352. package/src/themes/default/globals/reset.overrides +63 -59
  353. package/src/themes/default/globals/reset.variables +1 -1
  354. package/src/themes/default/globals/site.variables +1074 -1123
  355. package/src/themes/default/globals/variation.variables +6 -4
  356. package/src/themes/default/modules/accordion.overrides +11 -11
  357. package/src/themes/default/modules/accordion.variables +15 -20
  358. package/src/themes/default/modules/calendar.variables +2 -0
  359. package/src/themes/default/modules/chatroom.variables +1 -1
  360. package/src/themes/default/modules/checkbox.overrides +9 -13
  361. package/src/themes/default/modules/checkbox.variables +24 -33
  362. package/src/themes/default/modules/dimmer.variables +14 -17
  363. package/src/themes/default/modules/dropdown.overrides +17 -17
  364. package/src/themes/default/modules/dropdown.variables +29 -31
  365. package/src/themes/default/modules/embed.variables +9 -13
  366. package/src/themes/default/modules/flyout.variables +10 -8
  367. package/src/themes/default/modules/modal.variables +64 -67
  368. package/src/themes/default/modules/nag.variables +11 -14
  369. package/src/themes/default/modules/popup.variables +14 -13
  370. package/src/themes/default/modules/progress.variables +17 -19
  371. package/src/themes/default/modules/rating.variables +10 -12
  372. package/src/themes/default/modules/search.variables +12 -17
  373. package/src/themes/default/modules/shape.variables +7 -8
  374. package/src/themes/default/modules/sidebar.variables +4 -4
  375. package/src/themes/default/modules/slider.variables +55 -54
  376. package/src/themes/default/modules/sticky.variables +1 -1
  377. package/src/themes/default/modules/toast.variables +8 -8
  378. package/src/themes/default/modules/transition.overrides +936 -915
  379. package/src/themes/default/modules/transition.variables +1 -1
  380. package/src/themes/default/views/ad.variables +1 -1
  381. package/src/themes/default/views/card.variables +33 -45
  382. package/src/themes/default/views/comment.variables +7 -9
  383. package/src/themes/default/views/feed.variables +10 -10
  384. package/src/themes/default/views/item.variables +20 -23
  385. package/src/themes/default/views/statistic.variables +8 -8
  386. package/src/themes/duo/elements/loader.variables +1 -1
  387. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  388. package/src/themes/famfamfam/elements/flag.variables +4 -4
  389. package/src/themes/fixed-width/collections/grid.variables +4 -4
  390. package/src/themes/fixed-width/modules/modal.variables +11 -13
  391. package/src/themes/flat/collections/form.overrides +9 -9
  392. package/src/themes/flat/collections/form.variables +16 -17
  393. package/src/themes/flat/globals/site.variables +69 -74
  394. package/src/themes/github/assets/fonts/octicons.woff2 +0 -0
  395. package/src/themes/github/collections/breadcrumb.variables +0 -1
  396. package/src/themes/github/collections/form.overrides +7 -8
  397. package/src/themes/github/collections/form.variables +16 -18
  398. package/src/themes/github/collections/grid.variables +1 -2
  399. package/src/themes/github/collections/menu.overrides +2 -2
  400. package/src/themes/github/collections/menu.variables +24 -26
  401. package/src/themes/github/collections/message.overrides +3 -3
  402. package/src/themes/github/collections/message.variables +12 -14
  403. package/src/themes/github/collections/table.variables +2 -2
  404. package/src/themes/github/elements/button.overrides +0 -1
  405. package/src/themes/github/elements/button.variables +26 -30
  406. package/src/themes/github/elements/header.variables +2 -2
  407. package/src/themes/github/elements/icon.overrides +3 -208
  408. package/src/themes/github/elements/icon.variables +234 -19
  409. package/src/themes/github/elements/image.variables +1 -1
  410. package/src/themes/github/elements/input.overrides +16 -16
  411. package/src/themes/github/elements/input.variables +4 -5
  412. package/src/themes/github/elements/label.overrides +3 -3
  413. package/src/themes/github/elements/label.variables +0 -1
  414. package/src/themes/github/elements/segment.variables +9 -10
  415. package/src/themes/github/elements/step.overrides +13 -13
  416. package/src/themes/github/elements/step.variables +6 -6
  417. package/src/themes/github/globals/site.variables +16 -16
  418. package/src/themes/github/modules/dropdown.overrides +18 -19
  419. package/src/themes/github/modules/dropdown.variables +8 -10
  420. package/src/themes/github/modules/popup.variables +0 -2
  421. package/src/themes/gmail/collections/message.overrides +3 -0
  422. package/src/themes/gmail/collections/message.variables +4 -4
  423. package/src/themes/instagram/views/card.overrides +4 -5
  424. package/src/themes/instagram/views/card.variables +7 -8
  425. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  426. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  427. package/src/themes/material/collections/menu.overrides +1 -1
  428. package/src/themes/material/collections/menu.variables +4 -4
  429. package/src/themes/material/elements/button.overrides +7 -9
  430. package/src/themes/material/elements/button.variables +44 -46
  431. package/src/themes/material/elements/header.overrides +3 -3
  432. package/src/themes/material/elements/header.variables +8 -10
  433. package/src/themes/material/elements/icon.overrides +3 -934
  434. package/src/themes/material/elements/icon.variables +958 -18
  435. package/src/themes/material/globals/site.overrides +3 -0
  436. package/src/themes/material/globals/site.variables +83 -84
  437. package/src/themes/material/modules/dropdown.overrides +2 -2
  438. package/src/themes/material/modules/dropdown.variables +5 -5
  439. package/src/themes/material/modules/modal.overrides +3 -3
  440. package/src/themes/material/modules/modal.variables +4 -5
  441. package/src/themes/pulsar/elements/loader.overrides +23 -61
  442. package/src/themes/raised/elements/button.variables +8 -9
  443. package/src/themes/resetcss/globals/reset.overrides +115 -33
  444. package/src/themes/resetcss/globals/reset.variables +1 -1
  445. package/src/themes/round/elements/button.overrides +3 -0
  446. package/src/themes/round/elements/button.variables +33 -38
  447. package/src/themes/rtl/globals/site.overrides +1 -1
  448. package/src/themes/rtl/globals/site.variables +5 -6
  449. package/src/themes/striped/modules/progress.overrides +20 -16
  450. package/src/themes/systemfont/globals/reset.overrides +1 -1
  451. package/src/themes/systemfont/globals/site.variables +6 -6
  452. package/src/themes/timeline/views/feed.overrides +12 -12
  453. package/src/themes/timeline/views/feed.variables +8 -8
  454. package/src/themes/twitter/elements/button.overrides +4 -5
  455. package/src/themes/twitter/elements/button.variables +17 -18
  456. package/src/themes/twitter/elements/emoji.variables +3556 -3556
  457. package/tasks/.eslintrc.js +9 -0
  458. package/tasks/README.md +2 -4
  459. package/tasks/admin/components/create.js +268 -277
  460. package/tasks/admin/components/init.js +123 -129
  461. package/tasks/admin/components/update.js +151 -158
  462. package/tasks/admin/distributions/create.js +183 -189
  463. package/tasks/admin/distributions/init.js +125 -131
  464. package/tasks/admin/distributions/update.js +147 -153
  465. package/tasks/admin/publish.js +5 -9
  466. package/tasks/admin/register.js +37 -39
  467. package/tasks/admin/release.js +8 -12
  468. package/tasks/build/assets.js +43 -40
  469. package/tasks/build/css.js +230 -217
  470. package/tasks/build/javascript.js +120 -114
  471. package/tasks/build.js +11 -11
  472. package/tasks/check-install.js +15 -17
  473. package/tasks/clean.js +6 -6
  474. package/tasks/collections/README.md +3 -5
  475. package/tasks/collections/admin.js +34 -36
  476. package/tasks/collections/build.js +19 -21
  477. package/tasks/collections/docs.js +11 -13
  478. package/tasks/collections/install.js +11 -13
  479. package/tasks/collections/rtl.js +9 -12
  480. package/tasks/collections/various.js +10 -12
  481. package/tasks/config/admin/github.js +17 -19
  482. package/tasks/config/admin/oauth.example.js +4 -4
  483. package/tasks/config/admin/release.js +98 -98
  484. package/tasks/config/admin/templates/README.md +8 -8
  485. package/tasks/config/admin/templates/bower.json +3 -2
  486. package/tasks/config/admin/templates/component-package.js +9 -10
  487. package/tasks/config/admin/templates/css-package.js +19 -21
  488. package/tasks/config/admin/templates/less-package.js +12 -14
  489. package/tasks/config/admin/templates/package.json +6 -6
  490. package/tasks/config/defaults.js +116 -116
  491. package/tasks/config/docs.js +23 -23
  492. package/tasks/config/npm/gulpfile.js +15 -14
  493. package/tasks/config/project/config.js +124 -136
  494. package/tasks/config/project/install.js +722 -719
  495. package/tasks/config/project/release.js +34 -41
  496. package/tasks/config/tasks.js +168 -167
  497. package/tasks/config/user.js +28 -32
  498. package/tasks/docs/build.js +100 -96
  499. package/tasks/docs/metadata.js +91 -98
  500. package/tasks/docs/serve.js +84 -82
  501. package/tasks/install.js +373 -382
  502. package/tasks/rtl/build.js +4 -3
  503. package/tasks/rtl/watch.js +4 -3
  504. package/tasks/version.js +4 -6
  505. package/tasks/watch.js +29 -31
  506. package/test/.eslintrc.js +23 -0
  507. package/test/meteor/assets.js +11 -14
  508. package/test/meteor/fonts.js +12 -13
  509. package/test/modules/accordion.spec.js +6 -8
  510. package/test/modules/checkbox.spec.js +5 -7
  511. package/test/modules/dropdown.spec.js +5 -7
  512. package/test/modules/modal.spec.js +6 -8
  513. package/test/modules/module.spec.js +158 -178
  514. package/test/modules/popup.spec.js +5 -7
  515. package/test/modules/search.spec.js +5 -7
  516. package/test/modules/shape.spec.js +5 -7
  517. package/test/modules/sidebar.spec.js +5 -7
  518. package/test/modules/tab.spec.js +6 -8
  519. package/test/modules/transition.spec.js +5 -7
  520. package/test/modules/video.spec.js +5 -7
  521. 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 Fomantic 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 Fomantic 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
  };