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