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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +26 -0
  3. package/.eslint/no-extra-parens-rule.js +17 -0
  4. package/.eslint/package.json +11 -0
  5. package/.eslintrc.js +124 -0
  6. package/.github/workflows/ci.yml +37 -4
  7. package/.github/workflows/nightly.yml +1 -1
  8. package/.github/workflows/release.yml +1 -1
  9. package/.prettierrc.js +12 -0
  10. package/.stylelintrc.js +48 -0
  11. package/README.md +1 -1
  12. package/dist/components/accordion.css +35 -53
  13. package/dist/components/accordion.js +568 -595
  14. package/dist/components/accordion.min.css +2 -2
  15. package/dist/components/accordion.min.js +2 -2
  16. package/dist/components/ad.css +34 -45
  17. package/dist/components/ad.min.css +2 -2
  18. package/dist/components/api.js +1157 -1179
  19. package/dist/components/api.min.js +2 -2
  20. package/dist/components/breadcrumb.css +5 -5
  21. package/dist/components/breadcrumb.min.css +2 -2
  22. package/dist/components/button.css +709 -1121
  23. package/dist/components/button.min.css +2 -2
  24. package/dist/components/calendar.css +24 -27
  25. package/dist/components/calendar.js +1934 -1809
  26. package/dist/components/calendar.min.css +2 -2
  27. package/dist/components/calendar.min.js +2 -2
  28. package/dist/components/card.css +219 -365
  29. package/dist/components/card.min.css +2 -2
  30. package/dist/components/checkbox.css +119 -187
  31. package/dist/components/checkbox.js +842 -841
  32. package/dist/components/checkbox.min.css +2 -2
  33. package/dist/components/checkbox.min.js +2 -2
  34. package/dist/components/comment.css +41 -59
  35. package/dist/components/comment.min.css +2 -2
  36. package/dist/components/container.css +7 -6
  37. package/dist/components/container.min.css +2 -2
  38. package/dist/components/dimmer.css +53 -172
  39. package/dist/components/dimmer.js +706 -737
  40. package/dist/components/dimmer.min.css +2 -2
  41. package/dist/components/dimmer.min.js +2 -2
  42. package/dist/components/divider.css +43 -61
  43. package/dist/components/divider.min.css +2 -2
  44. package/dist/components/dropdown.css +252 -386
  45. package/dist/components/dropdown.js +4179 -4236
  46. package/dist/components/dropdown.min.css +2 -2
  47. package/dist/components/dropdown.min.js +2 -2
  48. package/dist/components/embed.css +18 -29
  49. package/dist/components/embed.js +645 -675
  50. package/dist/components/embed.min.css +2 -2
  51. package/dist/components/embed.min.js +2 -2
  52. package/dist/components/emoji.css +9 -9
  53. package/dist/components/emoji.min.css +1 -1
  54. package/dist/components/feed.css +35 -57
  55. package/dist/components/feed.min.css +2 -2
  56. package/dist/components/flag.css +6 -4
  57. package/dist/components/flag.min.css +2 -2
  58. package/dist/components/flyout.css +86 -141
  59. package/dist/components/flyout.js +1457 -1465
  60. package/dist/components/flyout.min.css +2 -2
  61. package/dist/components/flyout.min.js +2 -2
  62. package/dist/components/form.css +244 -339
  63. package/dist/components/form.js +2020 -2004
  64. package/dist/components/form.min.css +2 -2
  65. package/dist/components/form.min.js +2 -2
  66. package/dist/components/grid.css +172 -319
  67. package/dist/components/grid.min.css +2 -2
  68. package/dist/components/header.css +118 -142
  69. package/dist/components/header.min.css +2 -2
  70. package/dist/components/icon.css +660 -718
  71. package/dist/components/icon.min.css +2 -2
  72. package/dist/components/image.css +39 -63
  73. package/dist/components/image.min.css +2 -2
  74. package/dist/components/input.css +356 -274
  75. package/dist/components/input.min.css +2 -2
  76. package/dist/components/item.css +84 -131
  77. package/dist/components/item.min.css +2 -2
  78. package/dist/components/label.css +359 -410
  79. package/dist/components/label.min.css +2 -2
  80. package/dist/components/list.css +49 -70
  81. package/dist/components/list.min.css +2 -2
  82. package/dist/components/loader.css +67 -155
  83. package/dist/components/loader.min.css +2 -2
  84. package/dist/components/menu.css +269 -431
  85. package/dist/components/menu.min.css +1 -1
  86. package/dist/components/message.css +125 -197
  87. package/dist/components/message.min.css +2 -2
  88. package/dist/components/modal.css +119 -154
  89. package/dist/components/modal.js +1488 -1486
  90. package/dist/components/modal.min.css +2 -2
  91. package/dist/components/modal.min.js +2 -2
  92. package/dist/components/nag.css +53 -63
  93. package/dist/components/nag.js +520 -526
  94. package/dist/components/nag.min.css +2 -2
  95. package/dist/components/nag.min.js +2 -2
  96. package/dist/components/placeholder.css +22 -42
  97. package/dist/components/placeholder.min.css +2 -2
  98. package/dist/components/popup.css +423 -201
  99. package/dist/components/popup.js +1454 -1456
  100. package/dist/components/popup.min.css +2 -2
  101. package/dist/components/popup.min.js +2 -2
  102. package/dist/components/progress.css +106 -211
  103. package/dist/components/progress.js +969 -997
  104. package/dist/components/progress.min.css +2 -2
  105. package/dist/components/progress.min.js +2 -2
  106. package/dist/components/rail.css +15 -20
  107. package/dist/components/rail.min.css +1 -1
  108. package/dist/components/rating.css +80 -121
  109. package/dist/components/rating.js +505 -523
  110. package/dist/components/rating.min.css +2 -2
  111. package/dist/components/rating.min.js +2 -2
  112. package/dist/components/reset.css +8 -13
  113. package/dist/components/reset.min.css +2 -2
  114. package/dist/components/reveal.css +44 -83
  115. package/dist/components/reveal.min.css +2 -2
  116. package/dist/components/search.css +69 -98
  117. package/dist/components/search.js +1493 -1534
  118. package/dist/components/search.min.css +2 -2
  119. package/dist/components/search.min.js +2 -2
  120. package/dist/components/segment.css +148 -224
  121. package/dist/components/segment.min.css +2 -2
  122. package/dist/components/shape.css +14 -30
  123. package/dist/components/shape.js +781 -810
  124. package/dist/components/shape.min.css +2 -2
  125. package/dist/components/shape.min.js +2 -2
  126. package/dist/components/sidebar.css +103 -206
  127. package/dist/components/sidebar.js +1061 -1099
  128. package/dist/components/sidebar.min.css +2 -2
  129. package/dist/components/sidebar.min.js +2 -2
  130. package/dist/components/site.css +28 -41
  131. package/dist/components/site.js +436 -476
  132. package/dist/components/site.min.css +2 -2
  133. package/dist/components/site.min.js +2 -2
  134. package/dist/components/slider.css +93 -121
  135. package/dist/components/slider.js +1310 -1311
  136. package/dist/components/slider.min.css +1 -1
  137. package/dist/components/slider.min.js +2 -2
  138. package/dist/components/state.js +639 -657
  139. package/dist/components/state.min.js +2 -2
  140. package/dist/components/statistic.css +75 -116
  141. package/dist/components/statistic.min.css +2 -2
  142. package/dist/components/step.css +77 -150
  143. package/dist/components/step.min.css +2 -2
  144. package/dist/components/sticky.css +1 -5
  145. package/dist/components/sticky.js +848 -901
  146. package/dist/components/sticky.min.css +2 -2
  147. package/dist/components/sticky.min.js +2 -2
  148. package/dist/components/tab.css +10 -14
  149. package/dist/components/tab.js +922 -965
  150. package/dist/components/tab.min.css +2 -2
  151. package/dist/components/tab.min.js +2 -2
  152. package/dist/components/table.css +547 -774
  153. package/dist/components/table.min.css +2 -2
  154. package/dist/components/text.css +32 -32
  155. package/dist/components/text.min.css +1 -1
  156. package/dist/components/toast.css +69 -147
  157. package/dist/components/toast.js +910 -884
  158. package/dist/components/toast.min.css +2 -2
  159. package/dist/components/toast.min.js +2 -2
  160. package/dist/components/transition.css +369 -1280
  161. package/dist/components/transition.js +1047 -1077
  162. package/dist/components/transition.min.css +2 -2
  163. package/dist/components/transition.min.js +2 -2
  164. package/dist/components/visibility.js +1213 -1245
  165. package/dist/components/visibility.min.js +2 -2
  166. package/dist/semantic.css +5637 -8398
  167. package/dist/semantic.js +29021 -29405
  168. package/dist/semantic.min.css +2 -2
  169. package/dist/semantic.min.js +2 -2
  170. package/dist/themes/basic/assets/fonts/icons.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  174. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  176. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  178. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  182. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  183. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  184. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  185. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  186. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  187. package/dist/themes/github/assets/fonts/octicons.woff2 +0 -0
  188. package/examples/.eslintrc.js +6 -0
  189. package/examples/assets/show-examples.js +13 -13
  190. package/examples/components/sticky-context.html +1 -1
  191. package/examples/fixed.html +2 -2
  192. package/examples/grid.html +4 -4
  193. package/examples/login.html +1 -1
  194. package/examples/responsive.html +1 -1
  195. package/examples/sticky.html +3 -3
  196. package/gulpfile.js +10 -11
  197. package/package.json +18 -11
  198. package/scripts/nightly-version.js +83 -75
  199. package/src/_site/collections/menu.overrides +1 -1
  200. package/src/_site/elements/flag.variables +2 -2
  201. package/src/_site/globals/site.variables +1 -1
  202. package/src/_site/modules/embed.variables +3 -0
  203. package/src/definitions/behaviors/api.js +1158 -1180
  204. package/src/definitions/behaviors/form.js +2019 -2003
  205. package/src/definitions/behaviors/state.js +645 -663
  206. package/src/definitions/behaviors/visibility.js +1212 -1244
  207. package/src/definitions/collections/breadcrumb.less +43 -47
  208. package/src/definitions/collections/form.less +866 -884
  209. package/src/definitions/collections/grid.less +1680 -1699
  210. package/src/definitions/collections/menu.less +1521 -1544
  211. package/src/definitions/collections/message.less +294 -298
  212. package/src/definitions/collections/table.less +1657 -1661
  213. package/src/definitions/elements/button.less +1714 -1756
  214. package/src/definitions/elements/container.less +211 -211
  215. package/src/definitions/elements/divider.less +198 -211
  216. package/src/definitions/elements/emoji.less +41 -48
  217. package/src/definitions/elements/flag.less +46 -48
  218. package/src/definitions/elements/header.less +351 -359
  219. package/src/definitions/elements/icon.less +541 -484
  220. package/src/definitions/elements/image.less +216 -227
  221. package/src/definitions/elements/input.less +692 -698
  222. package/src/definitions/elements/label.less +784 -806
  223. package/src/definitions/elements/list.less +810 -814
  224. package/src/definitions/elements/loader.less +273 -268
  225. package/src/definitions/elements/placeholder.less +173 -170
  226. package/src/definitions/elements/rail.less +93 -93
  227. package/src/definitions/elements/reveal.less +192 -198
  228. package/src/definitions/elements/segment.less +742 -749
  229. package/src/definitions/elements/step.less +423 -437
  230. package/src/definitions/elements/text.less +34 -36
  231. package/src/definitions/globals/reset.less +11 -8
  232. package/src/definitions/globals/site.js +435 -475
  233. package/src/definitions/globals/site.less +108 -110
  234. package/src/definitions/modules/accordion.js +567 -594
  235. package/src/definitions/modules/accordion.less +244 -248
  236. package/src/definitions/modules/calendar.js +1933 -1808
  237. package/src/definitions/modules/calendar.less +100 -97
  238. package/src/definitions/modules/checkbox.js +841 -840
  239. package/src/definitions/modules/checkbox.less +531 -552
  240. package/src/definitions/modules/dimmer.js +705 -736
  241. package/src/definitions/modules/dimmer.less +294 -305
  242. package/src/definitions/modules/dropdown.js +4178 -4235
  243. package/src/definitions/modules/dropdown.less +1568 -1598
  244. package/src/definitions/modules/embed.js +644 -674
  245. package/src/definitions/modules/embed.less +82 -84
  246. package/src/definitions/modules/flyout.js +1456 -1464
  247. package/src/definitions/modules/flyout.less +445 -456
  248. package/src/definitions/modules/modal.js +1487 -1485
  249. package/src/definitions/modules/modal.less +458 -467
  250. package/src/definitions/modules/nag.js +519 -525
  251. package/src/definitions/modules/nag.less +136 -149
  252. package/src/definitions/modules/popup.js +1453 -1455
  253. package/src/definitions/modules/popup.less +737 -692
  254. package/src/definitions/modules/progress.js +968 -996
  255. package/src/definitions/modules/progress.less +523 -499
  256. package/src/definitions/modules/rating.js +504 -522
  257. package/src/definitions/modules/rating.less +98 -103
  258. package/src/definitions/modules/search.js +1492 -1533
  259. package/src/definitions/modules/search.less +374 -394
  260. package/src/definitions/modules/shape.js +780 -809
  261. package/src/definitions/modules/shape.less +70 -79
  262. package/src/definitions/modules/sidebar.js +1060 -1098
  263. package/src/definitions/modules/sidebar.less +463 -476
  264. package/src/definitions/modules/slider.js +1309 -1310
  265. package/src/definitions/modules/slider.less +309 -310
  266. package/src/definitions/modules/sticky.js +864 -917
  267. package/src/definitions/modules/sticky.less +17 -25
  268. package/src/definitions/modules/tab.js +921 -964
  269. package/src/definitions/modules/tab.less +48 -54
  270. package/src/definitions/modules/toast.js +909 -883
  271. package/src/definitions/modules/toast.less +589 -589
  272. package/src/definitions/modules/transition.js +1046 -1076
  273. package/src/definitions/modules/transition.less +65 -31
  274. package/src/definitions/views/ad.less +207 -208
  275. package/src/definitions/views/card.less +955 -973
  276. package/src/definitions/views/comment.less +192 -200
  277. package/src/definitions/views/feed.less +222 -226
  278. package/src/definitions/views/item.less +437 -448
  279. package/src/definitions/views/statistic.less +273 -279
  280. package/src/semantic.less +8 -6
  281. package/src/theme.config.example +53 -53
  282. package/src/theme.less +30 -33
  283. package/src/themes/amazon/elements/button.overrides +23 -24
  284. package/src/themes/amazon/elements/button.variables +18 -23
  285. package/src/themes/amazon/globals/site.variables +16 -17
  286. package/src/themes/basic/assets/fonts/icons.woff2 +0 -0
  287. package/src/themes/basic/collections/table.overrides +0 -1
  288. package/src/themes/basic/collections/table.variables +3 -3
  289. package/src/themes/basic/elements/button.overrides +0 -1
  290. package/src/themes/basic/elements/button.variables +9 -9
  291. package/src/themes/basic/elements/icon.overrides +9 -169
  292. package/src/themes/basic/elements/icon.variables +161 -18
  293. package/src/themes/basic/elements/step.overrides +2 -2
  294. package/src/themes/basic/elements/step.variables +2 -2
  295. package/src/themes/basic/globals/reset.overrides +1 -1
  296. package/src/themes/basic/globals/reset.variables +1 -1
  297. package/src/themes/basic/modules/progress.variables +2 -2
  298. package/src/themes/basic/views/card.overrides +0 -1
  299. package/src/themes/basic/views/card.variables +6 -6
  300. package/src/themes/bookish/elements/header.overrides +4 -4
  301. package/src/themes/bookish/elements/header.variables +5 -5
  302. package/src/themes/bootstrap3/elements/button.overrides +3 -0
  303. package/src/themes/bootstrap3/elements/button.variables +20 -25
  304. package/src/themes/chubby/collections/form.overrides +9 -9
  305. package/src/themes/chubby/collections/form.variables +3 -3
  306. package/src/themes/chubby/collections/menu.overrides +3 -0
  307. package/src/themes/chubby/collections/menu.variables +3 -3
  308. package/src/themes/chubby/elements/button.overrides +8 -10
  309. package/src/themes/chubby/elements/button.variables +10 -10
  310. package/src/themes/chubby/elements/header.overrides +1 -1
  311. package/src/themes/chubby/elements/header.variables +4 -4
  312. package/src/themes/chubby/modules/accordion.overrides +2 -2
  313. package/src/themes/chubby/modules/accordion.variables +4 -4
  314. package/src/themes/chubby/views/comment.overrides +5 -5
  315. package/src/themes/chubby/views/comment.variables +11 -11
  316. package/src/themes/classic/collections/table.variables +3 -3
  317. package/src/themes/classic/elements/button.variables +36 -43
  318. package/src/themes/classic/elements/header.variables +4 -4
  319. package/src/themes/classic/modules/progress.variables +3 -3
  320. package/src/themes/classic/views/card.overrides +25 -27
  321. package/src/themes/classic/views/card.variables +7 -7
  322. package/src/themes/colored/modules/checkbox.overrides +3 -0
  323. package/src/themes/colored/modules/checkbox.variables +1 -3
  324. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  325. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  326. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  327. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  328. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  329. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  330. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  331. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  332. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  333. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  334. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  335. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  336. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  337. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  338. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  339. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  340. package/src/themes/default/collections/breadcrumb.variables +4 -4
  341. package/src/themes/default/collections/form.variables +15 -16
  342. package/src/themes/default/collections/grid.overrides +0 -1
  343. package/src/themes/default/collections/grid.variables +14 -16
  344. package/src/themes/default/collections/menu.variables +31 -45
  345. package/src/themes/default/collections/message.variables +84 -123
  346. package/src/themes/default/collections/table.overrides +3 -0
  347. package/src/themes/default/collections/table.variables +30 -34
  348. package/src/themes/default/elements/button.variables +45 -52
  349. package/src/themes/default/elements/container.variables +8 -16
  350. package/src/themes/default/elements/divider.overrides +8 -9
  351. package/src/themes/default/elements/divider.variables +5 -6
  352. package/src/themes/default/elements/emoji.overrides +0 -1
  353. package/src/themes/default/elements/emoji.variables +3555 -3555
  354. package/src/themes/default/elements/flag.variables +1594 -1594
  355. package/src/themes/default/elements/header.overrides +0 -1
  356. package/src/themes/default/elements/header.variables +21 -21
  357. package/src/themes/default/elements/icon.variables +2023 -2009
  358. package/src/themes/default/elements/image.variables +6 -7
  359. package/src/themes/default/elements/input.variables +11 -12
  360. package/src/themes/default/elements/label.variables +25 -26
  361. package/src/themes/default/elements/list.variables +17 -21
  362. package/src/themes/default/elements/loader.variables +16 -17
  363. package/src/themes/default/elements/placeholder.variables +12 -9
  364. package/src/themes/default/elements/rail.variables +4 -5
  365. package/src/themes/default/elements/reveal.variables +1 -1
  366. package/src/themes/default/elements/segment.variables +24 -36
  367. package/src/themes/default/elements/step.overrides +4 -4
  368. package/src/themes/default/elements/step.variables +19 -22
  369. package/src/themes/default/elements/text.variables +2 -3
  370. package/src/themes/default/globals/colors.less +588 -588
  371. package/src/themes/default/globals/reset.overrides +63 -59
  372. package/src/themes/default/globals/reset.variables +1 -1
  373. package/src/themes/default/globals/site.variables +1075 -1123
  374. package/src/themes/default/globals/variation.variables +13 -4
  375. package/src/themes/default/modules/accordion.overrides +11 -11
  376. package/src/themes/default/modules/accordion.variables +15 -20
  377. package/src/themes/default/modules/calendar.variables +2 -0
  378. package/src/themes/default/modules/chatroom.variables +1 -1
  379. package/src/themes/default/modules/checkbox.overrides +8 -9
  380. package/src/themes/default/modules/checkbox.variables +24 -33
  381. package/src/themes/default/modules/dimmer.variables +14 -17
  382. package/src/themes/default/modules/dropdown.overrides +17 -17
  383. package/src/themes/default/modules/dropdown.variables +29 -31
  384. package/src/themes/default/modules/embed.variables +9 -13
  385. package/src/themes/default/modules/flyout.variables +8 -8
  386. package/src/themes/default/modules/modal.variables +64 -67
  387. package/src/themes/default/modules/nag.variables +11 -14
  388. package/src/themes/default/modules/popup.variables +14 -13
  389. package/src/themes/default/modules/progress.variables +17 -19
  390. package/src/themes/default/modules/rating.variables +10 -12
  391. package/src/themes/default/modules/search.variables +12 -17
  392. package/src/themes/default/modules/shape.variables +7 -8
  393. package/src/themes/default/modules/sidebar.variables +4 -4
  394. package/src/themes/default/modules/slider.variables +55 -54
  395. package/src/themes/default/modules/sticky.variables +1 -1
  396. package/src/themes/default/modules/toast.variables +8 -8
  397. package/src/themes/default/modules/transition.overrides +936 -915
  398. package/src/themes/default/modules/transition.variables +8 -1
  399. package/src/themes/default/views/ad.variables +1 -1
  400. package/src/themes/default/views/card.variables +33 -45
  401. package/src/themes/default/views/comment.variables +7 -9
  402. package/src/themes/default/views/feed.variables +10 -10
  403. package/src/themes/default/views/item.variables +20 -23
  404. package/src/themes/default/views/statistic.variables +8 -8
  405. package/src/themes/duo/elements/loader.variables +1 -1
  406. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  407. package/src/themes/famfamfam/elements/flag.variables +4 -4
  408. package/src/themes/fixed-width/collections/grid.variables +4 -4
  409. package/src/themes/fixed-width/modules/modal.variables +11 -13
  410. package/src/themes/flat/collections/form.overrides +9 -9
  411. package/src/themes/flat/collections/form.variables +16 -17
  412. package/src/themes/flat/globals/site.variables +69 -74
  413. package/src/themes/github/assets/fonts/octicons.woff2 +0 -0
  414. package/src/themes/github/collections/breadcrumb.variables +0 -1
  415. package/src/themes/github/collections/form.overrides +7 -8
  416. package/src/themes/github/collections/form.variables +16 -18
  417. package/src/themes/github/collections/grid.variables +1 -2
  418. package/src/themes/github/collections/menu.overrides +2 -2
  419. package/src/themes/github/collections/menu.variables +24 -26
  420. package/src/themes/github/collections/message.overrides +3 -3
  421. package/src/themes/github/collections/message.variables +12 -14
  422. package/src/themes/github/collections/table.variables +2 -2
  423. package/src/themes/github/elements/button.overrides +0 -1
  424. package/src/themes/github/elements/button.variables +26 -30
  425. package/src/themes/github/elements/header.variables +2 -2
  426. package/src/themes/github/elements/icon.overrides +3 -208
  427. package/src/themes/github/elements/icon.variables +234 -19
  428. package/src/themes/github/elements/image.variables +1 -1
  429. package/src/themes/github/elements/input.overrides +16 -16
  430. package/src/themes/github/elements/input.variables +4 -5
  431. package/src/themes/github/elements/label.overrides +3 -3
  432. package/src/themes/github/elements/label.variables +0 -1
  433. package/src/themes/github/elements/segment.variables +9 -10
  434. package/src/themes/github/elements/step.overrides +13 -13
  435. package/src/themes/github/elements/step.variables +6 -6
  436. package/src/themes/github/globals/site.variables +16 -16
  437. package/src/themes/github/modules/dropdown.overrides +18 -19
  438. package/src/themes/github/modules/dropdown.variables +8 -10
  439. package/src/themes/github/modules/popup.variables +0 -2
  440. package/src/themes/gmail/collections/message.overrides +3 -0
  441. package/src/themes/gmail/collections/message.variables +4 -4
  442. package/src/themes/instagram/views/card.overrides +4 -5
  443. package/src/themes/instagram/views/card.variables +7 -8
  444. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  445. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  446. package/src/themes/material/collections/menu.overrides +1 -1
  447. package/src/themes/material/collections/menu.variables +4 -4
  448. package/src/themes/material/elements/button.overrides +7 -9
  449. package/src/themes/material/elements/button.variables +44 -46
  450. package/src/themes/material/elements/header.overrides +3 -3
  451. package/src/themes/material/elements/header.variables +8 -10
  452. package/src/themes/material/elements/icon.overrides +3 -934
  453. package/src/themes/material/elements/icon.variables +958 -18
  454. package/src/themes/material/globals/site.overrides +3 -0
  455. package/src/themes/material/globals/site.variables +83 -84
  456. package/src/themes/material/modules/dropdown.overrides +2 -2
  457. package/src/themes/material/modules/dropdown.variables +5 -5
  458. package/src/themes/material/modules/modal.overrides +3 -3
  459. package/src/themes/material/modules/modal.variables +4 -5
  460. package/src/themes/pulsar/elements/loader.overrides +23 -61
  461. package/src/themes/raised/elements/button.variables +8 -9
  462. package/src/themes/resetcss/globals/reset.overrides +115 -33
  463. package/src/themes/resetcss/globals/reset.variables +1 -1
  464. package/src/themes/round/elements/button.overrides +3 -0
  465. package/src/themes/round/elements/button.variables +33 -38
  466. package/src/themes/rtl/globals/site.overrides +1 -1
  467. package/src/themes/rtl/globals/site.variables +5 -6
  468. package/src/themes/striped/modules/progress.overrides +20 -16
  469. package/src/themes/systemfont/globals/reset.overrides +1 -1
  470. package/src/themes/systemfont/globals/site.variables +6 -6
  471. package/src/themes/timeline/views/feed.overrides +12 -12
  472. package/src/themes/timeline/views/feed.variables +8 -8
  473. package/src/themes/twitter/elements/button.overrides +4 -5
  474. package/src/themes/twitter/elements/button.variables +17 -18
  475. package/src/themes/twitter/elements/emoji.variables +3555 -3555
  476. package/tasks/.eslintrc.js +9 -0
  477. package/tasks/README.md +2 -4
  478. package/tasks/admin/components/create.js +268 -277
  479. package/tasks/admin/components/init.js +123 -130
  480. package/tasks/admin/components/update.js +151 -159
  481. package/tasks/admin/distributions/create.js +183 -189
  482. package/tasks/admin/distributions/init.js +125 -132
  483. package/tasks/admin/distributions/update.js +147 -154
  484. package/tasks/admin/publish.js +5 -9
  485. package/tasks/admin/register.js +37 -39
  486. package/tasks/admin/release.js +8 -12
  487. package/tasks/build/assets.js +43 -40
  488. package/tasks/build/css.js +230 -217
  489. package/tasks/build/javascript.js +120 -114
  490. package/tasks/build.js +11 -11
  491. package/tasks/check-install.js +15 -17
  492. package/tasks/clean.js +6 -6
  493. package/tasks/collections/README.md +3 -5
  494. package/tasks/collections/admin.js +34 -36
  495. package/tasks/collections/build.js +18 -20
  496. package/tasks/collections/docs.js +10 -12
  497. package/tasks/collections/install.js +10 -12
  498. package/tasks/collections/rtl.js +9 -11
  499. package/tasks/collections/various.js +9 -11
  500. package/tasks/config/admin/github.js +17 -19
  501. package/tasks/config/admin/oauth.example.js +4 -4
  502. package/tasks/config/admin/release.js +98 -98
  503. package/tasks/config/admin/templates/README.md +8 -8
  504. package/tasks/config/admin/templates/bower.json +3 -2
  505. package/tasks/config/admin/templates/component-package.js +9 -10
  506. package/tasks/config/admin/templates/css-package.js +19 -21
  507. package/tasks/config/admin/templates/less-package.js +12 -14
  508. package/tasks/config/admin/templates/package.json +5 -5
  509. package/tasks/config/defaults.js +116 -116
  510. package/tasks/config/docs.js +23 -23
  511. package/tasks/config/npm/gulpfile.js +13 -14
  512. package/tasks/config/project/config.js +124 -136
  513. package/tasks/config/project/install.js +722 -719
  514. package/tasks/config/project/release.js +34 -41
  515. package/tasks/config/tasks.js +168 -167
  516. package/tasks/config/user.js +28 -29
  517. package/tasks/docs/build.js +100 -96
  518. package/tasks/docs/metadata.js +91 -98
  519. package/tasks/docs/serve.js +84 -82
  520. package/tasks/install.js +373 -382
  521. package/tasks/rtl/build.js +2 -4
  522. package/tasks/rtl/watch.js +2 -4
  523. package/tasks/version.js +4 -6
  524. package/tasks/watch.js +29 -31
  525. package/test/.eslintrc.js +23 -0
  526. package/test/meteor/assets.js +11 -14
  527. package/test/meteor/fonts.js +12 -13
  528. package/test/modules/accordion.spec.js +6 -8
  529. package/test/modules/checkbox.spec.js +5 -7
  530. package/test/modules/dropdown.spec.js +5 -7
  531. package/test/modules/modal.spec.js +6 -8
  532. package/test/modules/module.spec.js +158 -178
  533. package/test/modules/popup.spec.js +5 -7
  534. package/test/modules/search.spec.js +5 -7
  535. package/test/modules/shape.spec.js +5 -7
  536. package/test/modules/sidebar.spec.js +5 -7
  537. package/test/modules/tab.spec.js +6 -8
  538. package/test/modules/transition.spec.js +5 -7
  539. package/test/modules/video.spec.js +5 -7
  540. package/.github/workflows/codeql.yml +0 -68
@@ -4,123 +4,123 @@
4
4
 
5
5
  module.exports = {
6
6
 
7
- // base path added to all other paths
8
- base : '',
9
-
10
- // base path when installed with npm
11
- pmRoot: 'semantic/',
12
-
13
- // octal permission for output files, i.e. 0o644 or '644' (false does not adjust)
14
- permission : '744',
15
-
16
- // whether to generate rtl files
17
- rtl : false,
18
-
19
- // file paths
20
- files: {
21
- config : 'semantic.json',
22
- site : 'src/site',
23
- theme : 'src/theme.config'
24
- },
25
-
26
- // folder paths
27
- paths: {
28
- source: {
29
- config : 'src/theme.config',
30
- definitions : 'src/definitions/',
31
- site : 'src/site/',
32
- themes : 'src/themes/'
7
+ // base path added to all other paths
8
+ base: '',
9
+
10
+ // base path when installed with npm
11
+ pmRoot: 'semantic/',
12
+
13
+ // octal permission for output files, i.e. 0o644 or '644' (false does not adjust)
14
+ permission: '744',
15
+
16
+ // whether to generate rtl files
17
+ rtl: false,
18
+
19
+ // file paths
20
+ files: {
21
+ config: 'semantic.json',
22
+ site: 'src/site',
23
+ theme: 'src/theme.config',
33
24
  },
34
- output: {
35
- packaged : 'dist/',
36
- uncompressed : 'dist/components/',
37
- compressed : 'dist/components/',
38
- themes : 'dist/themes/'
25
+
26
+ // folder paths
27
+ paths: {
28
+ source: {
29
+ config: 'src/theme.config',
30
+ definitions: 'src/definitions/',
31
+ site: 'src/site/',
32
+ themes: 'src/themes/',
33
+ },
34
+ output: {
35
+ packaged: 'dist/',
36
+ uncompressed: 'dist/components/',
37
+ compressed: 'dist/components/',
38
+ themes: 'dist/themes/',
39
+ },
40
+ clean: 'dist/',
41
+ },
42
+
43
+ // components to include in package
44
+ components: [
45
+
46
+ // global
47
+ 'reset',
48
+ 'site',
49
+
50
+ // elements
51
+ 'button',
52
+ 'container',
53
+ 'divider',
54
+ 'emoji',
55
+ 'flag',
56
+ 'header',
57
+ 'icon',
58
+ 'image',
59
+ 'input',
60
+ 'label',
61
+ 'list',
62
+ 'loader',
63
+ 'placeholder',
64
+ 'rail',
65
+ 'reveal',
66
+ 'segment',
67
+ 'step',
68
+ 'text',
69
+
70
+ // collections
71
+ 'breadcrumb',
72
+ 'form',
73
+ 'grid',
74
+ 'menu',
75
+ 'message',
76
+ 'table',
77
+
78
+ // views
79
+ 'ad',
80
+ 'card',
81
+ 'comment',
82
+ 'feed',
83
+ 'item',
84
+ 'statistic',
85
+
86
+ // modules
87
+ 'accordion',
88
+ 'calendar',
89
+ 'checkbox',
90
+ 'dimmer',
91
+ 'dropdown',
92
+ 'embed',
93
+ 'flyout',
94
+ 'modal',
95
+ 'nag',
96
+ 'popup',
97
+ 'progress',
98
+ 'slider',
99
+ 'rating',
100
+ 'search',
101
+ 'shape',
102
+ 'sidebar',
103
+ 'sticky',
104
+ 'tab',
105
+ 'toast',
106
+ 'transition',
107
+
108
+ // behaviors
109
+ 'api',
110
+ 'form',
111
+ 'state',
112
+ 'visibility',
113
+ ],
114
+
115
+ // whether to load admin tasks
116
+ admin: false,
117
+
118
+ header: {},
119
+
120
+ // globs used for matching file patterns
121
+ globs: {
122
+ ignored: '!(*.min|*.map|*.rtl)',
123
+ ignoredRTL: '!(*.min|*.map)',
39
124
  },
40
- clean : 'dist/'
41
- },
42
-
43
- // components to include in package
44
- components: [
45
-
46
- // global
47
- 'reset',
48
- 'site',
49
-
50
- // elements
51
- 'button',
52
- 'container',
53
- 'divider',
54
- 'emoji',
55
- 'flag',
56
- 'header',
57
- 'icon',
58
- 'image',
59
- 'input',
60
- 'label',
61
- 'list',
62
- 'loader',
63
- 'placeholder',
64
- 'rail',
65
- 'reveal',
66
- 'segment',
67
- 'step',
68
- 'text',
69
-
70
- // collections
71
- 'breadcrumb',
72
- 'form',
73
- 'grid',
74
- 'menu',
75
- 'message',
76
- 'table',
77
-
78
- // views
79
- 'ad',
80
- 'card',
81
- 'comment',
82
- 'feed',
83
- 'item',
84
- 'statistic',
85
-
86
- // modules
87
- 'accordion',
88
- 'calendar',
89
- 'checkbox',
90
- 'dimmer',
91
- 'dropdown',
92
- 'embed',
93
- 'flyout',
94
- 'modal',
95
- 'nag',
96
- 'popup',
97
- 'progress',
98
- 'slider',
99
- 'rating',
100
- 'search',
101
- 'shape',
102
- 'sidebar',
103
- 'sticky',
104
- 'tab',
105
- 'toast',
106
- 'transition',
107
-
108
- // behaviors
109
- 'api',
110
- 'form',
111
- 'state',
112
- 'visibility'
113
- ],
114
-
115
- // whether to load admin tasks
116
- admin: false,
117
-
118
- header: {},
119
-
120
- // globs used for matching file patterns
121
- globs : {
122
- ignored : '!(*.min|*.map|*.rtl)',
123
- ignoredRTL : '!(*.min|*.map)'
124
- }
125
125
 
126
126
  };
@@ -4,29 +4,29 @@
4
4
 
5
5
  /* Paths used for "serve-docs" and "build-docs" tasks */
6
6
  module.exports = {
7
- base: '',
8
- globs: {
9
- eco: '**/*.html.eco'
10
- },
11
- paths: {
12
- clean: '../docs/out/dist/',
13
- source: {
14
- config : 'src/theme.config',
15
- definitions : 'src/definitions/',
16
- site : 'src/site/',
17
- themes : 'src/themes/'
7
+ base: '',
8
+ globs: {
9
+ eco: '**/*.html.eco',
18
10
  },
19
- output: {
20
- examples : '../docs/out/examples/',
21
- less : '../docs/out/src/',
22
- metadata : '../docs/out/',
23
- packaged : '../docs/out/dist/',
24
- uncompressed : '../docs/out/dist/components/',
25
- compressed : '../docs/out/dist/components/',
26
- themes : '../docs/out/dist/themes/'
11
+ paths: {
12
+ clean: '../docs/out/dist/',
13
+ source: {
14
+ config: 'src/theme.config',
15
+ definitions: 'src/definitions/',
16
+ site: 'src/site/',
17
+ themes: 'src/themes/',
18
+ },
19
+ output: {
20
+ examples: '../docs/out/examples/',
21
+ less: '../docs/out/src/',
22
+ metadata: '../docs/out/',
23
+ packaged: '../docs/out/dist/',
24
+ uncompressed: '../docs/out/dist/components/',
25
+ compressed: '../docs/out/dist/components/',
26
+ themes: '../docs/out/dist/themes/',
27
+ },
28
+ template: {
29
+ eco: '../docs/server/documents/',
30
+ },
27
31
  },
28
- template: {
29
- eco: '../docs/server/documents/'
30
- },
31
- }
32
32
  };
@@ -2,34 +2,33 @@
2
2
  * Set-up
3
3
  *******************************/
4
4
 
5
- var
6
- gulp = require('gulp'),
5
+ const
6
+ gulp = require('gulp'),
7
7
 
8
- // read user config to know what task to load
9
- config = require('./tasks/config/user')
8
+ // read user config to know what task to load
9
+ config = require('./tasks/config/user') // eslint-disable-line import/extensions
10
10
  ;
11
11
 
12
-
13
12
  /*******************************
14
13
  * Tasks
15
14
  *******************************/
16
15
 
17
- require('./tasks/collections/build')(gulp);
18
- require('./tasks/collections/various')(gulp);
19
- require('./tasks/collections/install')(gulp);
16
+ require('./tasks/collections/build')(gulp); // eslint-disable-line import/extensions
17
+ require('./tasks/collections/various')(gulp); // eslint-disable-line import/extensions
18
+ require('./tasks/collections/install')(gulp); // eslint-disable-line import/extensions
20
19
 
21
20
  gulp.task('default', gulp.series('watch'));
22
21
 
23
- /*--------------
22
+ /* --------------
24
23
  Docs
25
- ---------------*/
24
+ --------------- */
26
25
 
27
- require('./tasks/collections/docs')(gulp);
26
+ require('./tasks/collections/docs')(gulp); // eslint-disable-line import/extensions
28
27
 
29
- /*--------------
28
+ /* --------------
30
29
  RTL
31
- ---------------*/
30
+ --------------- */
32
31
 
33
32
  if (config.rtl) {
34
- require('./tasks/collections/rtl')(gulp);
33
+ require('./tasks/collections/rtl')(gulp); // eslint-disable-line import/extensions
35
34
  }
@@ -2,153 +2,141 @@
2
2
  Set-up
3
3
  *******************************/
4
4
 
5
- var
6
- extend = require('extend'),
7
- fs = require('fs'),
8
- path = require('path'),
5
+ const
6
+ fs = require('fs'),
7
+ path = require('path'),
9
8
 
10
- defaults = require('../defaults')
9
+ defaults = require('../defaults')
11
10
  ;
12
11
 
13
-
14
12
  /*******************************
15
13
  Exports
16
14
  *******************************/
17
15
 
18
16
  module.exports = {
19
17
 
20
- getPath: function(file, directory) {
21
- var
22
- configPath,
23
- walk = function(directory) {
24
- var
25
- nextDirectory = path.resolve( path.join(directory, path.sep, '..') ),
26
- currentPath = path.normalize( path.join(directory, file) )
18
+ getPath: function (file, directory) {
19
+ let
20
+ configPath,
21
+ walk = function (directory) {
22
+ let
23
+ nextDirectory = path.resolve(path.join(directory, path.sep, '..')),
24
+ currentPath = path.normalize(path.join(directory, file))
25
+ ;
26
+ if (fs.existsSync(currentPath)) {
27
+ // found file
28
+ configPath = path.normalize(directory);
29
+ } else {
30
+ // reached file system root, let's stop
31
+ if (nextDirectory === directory) {
32
+ return;
33
+ }
34
+ // otherwise recurse
35
+ walk(nextDirectory, file);
36
+ }
37
+ }
38
+ ;
39
+
40
+ // start walk from outside require-dot-files directory
41
+ file = file || defaults.files.config;
42
+ directory = directory || path.join(__dirname, path.sep, '..');
43
+ walk(directory);
44
+
45
+ return configPath || '';
46
+ },
47
+
48
+ // adds additional derived values to a config object
49
+ addDerivedValues: function (config) {
50
+ /* --------------
51
+ File Paths
52
+ --------------- */
53
+
54
+ let
55
+ configPath = this.getPath(),
56
+ sourcePaths = {},
57
+ outputPaths = {},
58
+ folder
27
59
  ;
28
- if( fs.existsSync(currentPath) ) {
29
- // found file
30
- configPath = path.normalize(directory);
31
- return;
60
+
61
+ // resolve paths (config location + base + path)
62
+ for (folder in config.paths.source) {
63
+ if (Object.prototype.hasOwnProperty.call(config.paths.source, folder)) {
64
+ sourcePaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.source[folder]));
65
+ }
32
66
  }
33
- else {
34
- // reached file system root, let's stop
35
- if(nextDirectory == directory) {
36
- return;
37
- }
38
- // otherwise recurse
39
- walk(nextDirectory, file);
67
+ for (folder in config.paths.output) {
68
+ if (Object.prototype.hasOwnProperty.call(config.paths.output, folder)) {
69
+ outputPaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.output[folder]));
70
+ }
40
71
  }
41
- }
42
- ;
43
-
44
- // start walk from outside require-dot-files directory
45
- file = file || defaults.files.config;
46
- directory = directory || path.join(__dirname, path.sep, '..');
47
- walk(directory);
48
- return configPath || '';
49
- },
50
-
51
- // adds additional derived values to a config object
52
- addDerivedValues: function(config) {
53
-
54
- config = config || extend(false, {}, defaults);
55
-
56
- /*--------------
57
- File Paths
58
- ---------------*/
59
-
60
- var
61
- configPath = this.getPath(),
62
- sourcePaths = {},
63
- outputPaths = {},
64
- folder
65
- ;
66
-
67
- // resolve paths (config location + base + path)
68
- for(folder in config.paths.source) {
69
- if(config.paths.source.hasOwnProperty(folder)) {
70
- sourcePaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.source[folder]));
71
- }
72
- }
73
- for(folder in config.paths.output) {
74
- if(config.paths.output.hasOwnProperty(folder)) {
75
- outputPaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.output[folder]));
76
- }
77
- }
78
-
79
- // set config paths to full paths
80
- config.paths.source = sourcePaths;
81
- config.paths.output = outputPaths;
82
-
83
- // resolve "clean" command path
84
- config.paths.clean = path.resolve( path.join(configPath, config.base, config.paths.clean) );
85
-
86
- /*--------------
87
- CSS URLs
88
- ---------------*/
89
-
90
- // determine asset paths in css by finding relative path between themes and output
91
- // force forward slashes
92
-
93
- config.paths.assets = {
94
- source : '../../themes', // source asset path is always the same
95
- uncompressed : './' + path.relative(config.paths.output.uncompressed, config.paths.output.themes).replace(/\\/g, '/'),
96
- compressed : './' + path.relative(config.paths.output.compressed, config.paths.output.themes).replace(/\\/g, '/'),
97
- packaged : './' + path.relative(config.paths.output.packaged, config.paths.output.themes).replace(/\\/g, '/')
98
- };
99
-
100
- /*--------------
101
- Permission
102
- ---------------*/
103
-
104
- if(config.permission) {
105
- config.hasPermissions = true;
106
- config.parsedPermissions = typeof config.permission === 'string' ? parseInt(config.permission, 8) : config.permission;
107
- }
108
- else {
109
- // pass blank object to avoid causing errors
110
- config.permission = {};
111
- config.hasPermissions = false;
112
- config.parsedPermissions = {};
113
- }
114
-
115
- /*--------------
116
- Globs
117
- ---------------*/
118
-
119
- if(!config.globs) {
120
- config.globs = {};
121
- }
122
-
123
- // remove duplicates from component array
124
- if(config.components instanceof Array) {
125
- config.components = config.components.filter(function(component, index) {
126
- return config.components.indexOf(component) == index;
127
- });
128
- }
129
-
130
- const components = (Array.isArray(config.components) && config.components.length >= 1)
131
- ? config.components
132
- : defaults.components
133
- ;
134
- const individuals = (Array.isArray(config.individuals) && config.individuals.length >= 1)
135
- ? config.individuals
136
- : []
137
- ;
138
- const componentsExceptIndividuals = components.filter((component) => !individuals.includes(component));
139
-
140
- // takes component object and creates file glob matching selected components
141
- config.globs.components = '{' + componentsExceptIndividuals.join(',') + '}';
142
-
143
- // components that should be built, but excluded from main .css/.js files
144
- config.globs.individuals = (individuals.length >= 1)
145
- ? '{' + individuals.join(',') + '}'
146
- : undefined
147
- ;
148
-
149
- return config;
150
-
151
- }
152
72
 
153
- };
73
+ // set config paths to full paths
74
+ config.paths.source = sourcePaths;
75
+ config.paths.output = outputPaths;
76
+
77
+ // resolve "clean" command path
78
+ config.paths.clean = path.resolve(path.join(configPath, config.base, config.paths.clean));
79
+
80
+ /* --------------
81
+ CSS URLs
82
+ --------------- */
83
+
84
+ // determine asset paths in css by finding relative path between themes and output
85
+ // force forward slashes
86
+
87
+ config.paths.assets = {
88
+ source: '../../themes', // source asset path is always the same
89
+ uncompressed: './' + path.relative(config.paths.output.uncompressed, config.paths.output.themes).replace(/\\/g, '/'),
90
+ compressed: './' + path.relative(config.paths.output.compressed, config.paths.output.themes).replace(/\\/g, '/'),
91
+ packaged: './' + path.relative(config.paths.output.packaged, config.paths.output.themes).replace(/\\/g, '/'),
92
+ };
93
+
94
+ /* --------------
95
+ Permission
96
+ --------------- */
97
+
98
+ if (config.permission) {
99
+ config.hasPermissions = true;
100
+ config.parsedPermissions = typeof config.permission === 'string' ? parseInt(config.permission, 8) : config.permission;
101
+ } else {
102
+ // pass blank object to avoid causing errors
103
+ config.permission = {};
104
+ config.hasPermissions = false;
105
+ config.parsedPermissions = {};
106
+ }
107
+
108
+ /* --------------
109
+ Globs
110
+ --------------- */
154
111
 
112
+ if (!config.globs) {
113
+ config.globs = {};
114
+ }
115
+
116
+ // remove duplicates from component array
117
+ if (Array.isArray(config.components)) {
118
+ config.components = config.components.filter(function (component, index) {
119
+ return config.components.indexOf(component) === index;
120
+ });
121
+ }
122
+
123
+ const components = Array.isArray(config.components) && config.components.length > 0
124
+ ? config.components
125
+ : defaults.components;
126
+ const individuals = Array.isArray(config.individuals) && config.individuals.length > 0
127
+ ? config.individuals
128
+ : [];
129
+ const componentsExceptIndividuals = components.filter((component) => !individuals.includes(component));
130
+
131
+ // takes component object and creates file glob matching selected components
132
+ config.globs.components = componentsExceptIndividuals.length === 1 ? componentsExceptIndividuals[0] : '{' + componentsExceptIndividuals.join(',') + '}';
133
+
134
+ // components that should be built, but excluded from main .css/.js files
135
+ config.globs.individuals = individuals.length === 1
136
+ ? individuals[0]
137
+ : (individuals.length > 1
138
+ ? '{' + individuals.join(',') + '}'
139
+ : undefined);
140
+ },
141
+
142
+ };