fomantic-ui 2.9.1-beta.2 → 2.9.1-beta.21

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 (493) hide show
  1. package/.eslintrc.js +111 -0
  2. package/.github/workflows/ci.yml +14 -4
  3. package/.stylelintrc.js +59 -0
  4. package/dist/components/accordion.css +19 -26
  5. package/dist/components/accordion.js +568 -595
  6. package/dist/components/accordion.min.css +1 -1
  7. package/dist/components/accordion.min.js +2 -2
  8. package/dist/components/ad.css +31 -41
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +1156 -1179
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +71 -106
  15. package/dist/components/button.min.css +1 -1
  16. package/dist/components/calendar.css +18 -16
  17. package/dist/components/calendar.js +1902 -1809
  18. package/dist/components/calendar.min.css +2 -2
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +83 -115
  21. package/dist/components/card.min.css +1 -1
  22. package/dist/components/checkbox.css +47 -64
  23. package/dist/components/checkbox.js +842 -841
  24. package/dist/components/checkbox.min.css +1 -1
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +37 -51
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +6 -5
  29. package/dist/components/container.min.css +2 -2
  30. package/dist/components/dimmer.css +31 -41
  31. package/dist/components/dimmer.js +708 -737
  32. package/dist/components/dimmer.min.css +1 -1
  33. package/dist/components/dimmer.min.js +2 -2
  34. package/dist/components/divider.css +32 -44
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +129 -166
  37. package/dist/components/dropdown.js +4161 -4234
  38. package/dist/components/dropdown.min.css +2 -2
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +13 -19
  41. package/dist/components/embed.js +651 -675
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/emoji.css +7 -6
  45. package/dist/components/feed.css +24 -32
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +5 -3
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +44 -58
  50. package/dist/components/flyout.js +1464 -1465
  51. package/dist/components/flyout.min.css +2 -2
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +85 -111
  54. package/dist/components/form.js +1979 -2004
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +70 -96
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +47 -65
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +45 -66
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +32 -42
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +182 -65
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +55 -77
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +68 -91
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +44 -59
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +16 -22
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +126 -186
  76. package/dist/components/message.css +25 -35
  77. package/dist/components/message.min.css +1 -1
  78. package/dist/components/modal.css +39 -40
  79. package/dist/components/modal.js +1491 -1485
  80. package/dist/components/modal.min.css +2 -2
  81. package/dist/components/modal.min.js +2 -2
  82. package/dist/components/nag.css +21 -28
  83. package/dist/components/nag.js +518 -526
  84. package/dist/components/nag.min.css +2 -2
  85. package/dist/components/nag.min.js +2 -2
  86. package/dist/components/placeholder.css +10 -12
  87. package/dist/components/placeholder.min.css +1 -1
  88. package/dist/components/popup.css +352 -59
  89. package/dist/components/popup.js +1437 -1456
  90. package/dist/components/popup.min.css +2 -2
  91. package/dist/components/popup.min.js +2 -2
  92. package/dist/components/progress.css +29 -39
  93. package/dist/components/progress.js +969 -997
  94. package/dist/components/progress.min.css +1 -1
  95. package/dist/components/progress.min.js +2 -2
  96. package/dist/components/rail.css +15 -20
  97. package/dist/components/rail.min.css +1 -1
  98. package/dist/components/rating.css +9 -13
  99. package/dist/components/rating.js +505 -523
  100. package/dist/components/rating.min.css +1 -1
  101. package/dist/components/rating.min.js +2 -2
  102. package/dist/components/reset.css +1 -1
  103. package/dist/components/reset.min.css +1 -1
  104. package/dist/components/reveal.css +19 -26
  105. package/dist/components/reveal.min.css +1 -1
  106. package/dist/components/search.css +43 -58
  107. package/dist/components/search.js +1498 -1534
  108. package/dist/components/search.min.css +2 -2
  109. package/dist/components/search.min.js +2 -2
  110. package/dist/components/segment.css +64 -83
  111. package/dist/components/segment.min.css +2 -2
  112. package/dist/components/shape.css +10 -14
  113. package/dist/components/shape.js +792 -809
  114. package/dist/components/shape.min.css +1 -1
  115. package/dist/components/shape.min.js +2 -2
  116. package/dist/components/sidebar.css +43 -58
  117. package/dist/components/sidebar.js +1071 -1098
  118. package/dist/components/sidebar.min.css +2 -2
  119. package/dist/components/sidebar.min.js +2 -2
  120. package/dist/components/site.css +5 -5
  121. package/dist/components/site.js +462 -476
  122. package/dist/components/site.min.css +1 -1
  123. package/dist/components/site.min.js +2 -2
  124. package/dist/components/slider.css +27 -37
  125. package/dist/components/slider.js +1287 -1306
  126. package/dist/components/slider.min.js +2 -2
  127. package/dist/components/state.js +639 -657
  128. package/dist/components/state.min.js +2 -2
  129. package/dist/components/statistic.css +32 -41
  130. package/dist/components/statistic.min.css +2 -2
  131. package/dist/components/step.css +26 -35
  132. package/dist/components/step.min.css +1 -1
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +857 -902
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +2 -2
  137. package/dist/components/tab.css +6 -8
  138. package/dist/components/tab.js +922 -963
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +2 -2
  141. package/dist/components/table.css +93 -119
  142. package/dist/components/table.min.css +2 -2
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +4 -6
  146. package/dist/components/toast.js +886 -887
  147. package/dist/components/toast.min.css +1 -1
  148. package/dist/components/toast.min.js +2 -2
  149. package/dist/components/transition.css +179 -42
  150. package/dist/components/transition.js +1041 -1077
  151. package/dist/components/transition.min.css +2 -2
  152. package/dist/components/transition.min.js +2 -2
  153. package/dist/components/visibility.js +1220 -1244
  154. package/dist/components/visibility.min.js +2 -2
  155. package/dist/semantic.css +2558 -1807
  156. package/dist/semantic.js +28960 -29413
  157. package/dist/semantic.min.css +2 -2
  158. package/dist/semantic.min.js +2 -2
  159. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  160. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  161. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  162. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  163. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  164. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  165. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  168. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  172. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  175. package/examples/assets/show-examples.js +13 -13
  176. package/gulpfile.js +9 -10
  177. package/package.json +13 -8
  178. package/scripts/nightly-version.js +81 -75
  179. package/src/_site/collections/menu.overrides +1 -1
  180. package/src/_site/elements/flag.variables +2 -2
  181. package/src/_site/globals/site.variables +1 -1
  182. package/src/definitions/behaviors/api.js +1157 -1180
  183. package/src/definitions/behaviors/form.js +1978 -2003
  184. package/src/definitions/behaviors/state.js +645 -663
  185. package/src/definitions/behaviors/visibility.js +1219 -1243
  186. package/src/definitions/collections/breadcrumb.less +41 -45
  187. package/src/definitions/collections/form.less +864 -882
  188. package/src/definitions/collections/grid.less +1689 -1697
  189. package/src/definitions/collections/menu.less +1490 -1508
  190. package/src/definitions/collections/message.less +292 -295
  191. package/src/definitions/collections/table.less +1616 -1620
  192. package/src/definitions/elements/button.less +1710 -1754
  193. package/src/definitions/elements/container.less +209 -209
  194. package/src/definitions/elements/divider.less +200 -209
  195. package/src/definitions/elements/emoji.less +38 -45
  196. package/src/definitions/elements/flag.less +44 -46
  197. package/src/definitions/elements/header.less +337 -345
  198. package/src/definitions/elements/icon.less +516 -451
  199. package/src/definitions/elements/image.less +219 -225
  200. package/src/definitions/elements/input.less +657 -663
  201. package/src/definitions/elements/label.less +783 -804
  202. package/src/definitions/elements/list.less +808 -812
  203. package/src/definitions/elements/loader.less +269 -266
  204. package/src/definitions/elements/placeholder.less +171 -168
  205. package/src/definitions/elements/rail.less +91 -91
  206. package/src/definitions/elements/reveal.less +190 -196
  207. package/src/definitions/elements/segment.less +738 -747
  208. package/src/definitions/elements/step.less +424 -435
  209. package/src/definitions/elements/text.less +32 -34
  210. package/src/definitions/globals/reset.less +9 -6
  211. package/src/definitions/globals/site.js +461 -475
  212. package/src/definitions/globals/site.less +106 -108
  213. package/src/definitions/modules/accordion.js +567 -594
  214. package/src/definitions/modules/accordion.less +242 -246
  215. package/src/definitions/modules/calendar.js +1901 -1808
  216. package/src/definitions/modules/calendar.less +98 -95
  217. package/src/definitions/modules/checkbox.js +841 -840
  218. package/src/definitions/modules/checkbox.less +524 -545
  219. package/src/definitions/modules/dimmer.js +707 -736
  220. package/src/definitions/modules/dimmer.less +300 -303
  221. package/src/definitions/modules/dropdown.js +4160 -4233
  222. package/src/definitions/modules/dropdown.less +1570 -1596
  223. package/src/definitions/modules/embed.js +650 -674
  224. package/src/definitions/modules/embed.less +80 -82
  225. package/src/definitions/modules/flyout.js +1463 -1464
  226. package/src/definitions/modules/flyout.less +444 -454
  227. package/src/definitions/modules/modal.js +1490 -1484
  228. package/src/definitions/modules/modal.less +459 -465
  229. package/src/definitions/modules/nag.js +517 -525
  230. package/src/definitions/modules/nag.less +134 -147
  231. package/src/definitions/modules/popup.js +1436 -1455
  232. package/src/definitions/modules/popup.less +733 -690
  233. package/src/definitions/modules/progress.js +968 -996
  234. package/src/definitions/modules/progress.less +521 -497
  235. package/src/definitions/modules/rating.js +504 -522
  236. package/src/definitions/modules/rating.less +94 -101
  237. package/src/definitions/modules/search.js +1497 -1533
  238. package/src/definitions/modules/search.less +373 -392
  239. package/src/definitions/modules/shape.js +791 -808
  240. package/src/definitions/modules/shape.less +68 -77
  241. package/src/definitions/modules/sidebar.js +1070 -1097
  242. package/src/definitions/modules/sidebar.less +462 -474
  243. package/src/definitions/modules/slider.js +1286 -1305
  244. package/src/definitions/modules/slider.less +307 -308
  245. package/src/definitions/modules/sticky.js +873 -918
  246. package/src/definitions/modules/sticky.less +22 -23
  247. package/src/definitions/modules/tab.js +921 -962
  248. package/src/definitions/modules/tab.less +46 -52
  249. package/src/definitions/modules/toast.js +885 -886
  250. package/src/definitions/modules/toast.less +584 -586
  251. package/src/definitions/modules/transition.js +1040 -1076
  252. package/src/definitions/modules/transition.less +62 -28
  253. package/src/definitions/views/ad.less +205 -206
  254. package/src/definitions/views/card.less +963 -969
  255. package/src/definitions/views/comment.less +190 -198
  256. package/src/definitions/views/feed.less +220 -224
  257. package/src/definitions/views/item.less +435 -446
  258. package/src/definitions/views/statistic.less +271 -277
  259. package/src/theme.less +29 -32
  260. package/src/themes/amazon/elements/button.overrides +23 -24
  261. package/src/themes/amazon/elements/button.variables +11 -11
  262. package/src/themes/amazon/globals/site.variables +2 -3
  263. package/src/themes/basic/collections/table.overrides +0 -1
  264. package/src/themes/basic/collections/table.variables +3 -3
  265. package/src/themes/basic/elements/button.overrides +0 -1
  266. package/src/themes/basic/elements/button.variables +2 -2
  267. package/src/themes/basic/elements/icon.overrides +12 -13
  268. package/src/themes/basic/elements/icon.variables +13 -13
  269. package/src/themes/basic/elements/step.overrides +2 -2
  270. package/src/themes/basic/elements/step.variables +2 -2
  271. package/src/themes/basic/globals/reset.overrides +1 -1
  272. package/src/themes/basic/globals/reset.variables +1 -1
  273. package/src/themes/basic/views/card.overrides +0 -1
  274. package/src/themes/basic/views/card.variables +3 -3
  275. package/src/themes/bookish/elements/header.overrides +3 -3
  276. package/src/themes/bookish/elements/header.variables +2 -2
  277. package/src/themes/bootstrap3/elements/button.variables +7 -8
  278. package/src/themes/chubby/collections/form.overrides +9 -9
  279. package/src/themes/chubby/collections/form.variables +3 -3
  280. package/src/themes/chubby/collections/menu.variables +1 -1
  281. package/src/themes/chubby/elements/button.overrides +7 -9
  282. package/src/themes/chubby/elements/button.variables +2 -2
  283. package/src/themes/chubby/elements/header.variables +3 -3
  284. package/src/themes/chubby/modules/accordion.overrides +2 -2
  285. package/src/themes/chubby/modules/accordion.variables +3 -3
  286. package/src/themes/chubby/views/comment.overrides +5 -5
  287. package/src/themes/chubby/views/comment.variables +4 -4
  288. package/src/themes/classic/collections/table.variables +2 -2
  289. package/src/themes/classic/elements/button.variables +20 -21
  290. package/src/themes/classic/elements/header.variables +3 -3
  291. package/src/themes/classic/modules/progress.variables +1 -1
  292. package/src/themes/classic/views/card.overrides +14 -14
  293. package/src/themes/classic/views/card.variables +4 -4
  294. package/src/themes/colored/modules/checkbox.variables +1 -1
  295. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  296. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  297. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  298. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  299. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  300. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  301. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  302. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  303. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  304. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  305. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  306. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  307. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  308. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  309. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  310. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  311. package/src/themes/default/collections/breadcrumb.variables +4 -4
  312. package/src/themes/default/collections/form.variables +12 -12
  313. package/src/themes/default/collections/grid.overrides +0 -1
  314. package/src/themes/default/collections/grid.variables +14 -16
  315. package/src/themes/default/collections/menu.variables +19 -31
  316. package/src/themes/default/collections/message.variables +83 -84
  317. package/src/themes/default/collections/table.variables +16 -18
  318. package/src/themes/default/elements/button.variables +30 -31
  319. package/src/themes/default/elements/container.variables +4 -12
  320. package/src/themes/default/elements/divider.overrides +8 -9
  321. package/src/themes/default/elements/divider.variables +4 -5
  322. package/src/themes/default/elements/emoji.overrides +0 -1
  323. package/src/themes/default/elements/emoji.variables +3555 -3555
  324. package/src/themes/default/elements/flag.variables +1594 -1594
  325. package/src/themes/default/elements/header.overrides +0 -1
  326. package/src/themes/default/elements/header.variables +16 -16
  327. package/src/themes/default/elements/icon.variables +2017 -2001
  328. package/src/themes/default/elements/image.variables +6 -7
  329. package/src/themes/default/elements/input.variables +10 -10
  330. package/src/themes/default/elements/label.variables +19 -20
  331. package/src/themes/default/elements/list.variables +16 -16
  332. package/src/themes/default/elements/loader.variables +15 -16
  333. package/src/themes/default/elements/placeholder.variables +6 -7
  334. package/src/themes/default/elements/rail.variables +4 -5
  335. package/src/themes/default/elements/segment.variables +18 -29
  336. package/src/themes/default/elements/step.overrides +4 -4
  337. package/src/themes/default/elements/step.variables +14 -16
  338. package/src/themes/default/elements/text.variables +2 -3
  339. package/src/themes/default/globals/colors.less +588 -588
  340. package/src/themes/default/globals/reset.overrides +57 -57
  341. package/src/themes/default/globals/reset.variables +1 -1
  342. package/src/themes/default/globals/site.variables +869 -875
  343. package/src/themes/default/globals/variation.variables +13 -4
  344. package/src/themes/default/modules/accordion.overrides +11 -11
  345. package/src/themes/default/modules/accordion.variables +14 -15
  346. package/src/themes/default/modules/calendar.variables +2 -0
  347. package/src/themes/default/modules/chatroom.variables +1 -1
  348. package/src/themes/default/modules/checkbox.overrides +6 -7
  349. package/src/themes/default/modules/checkbox.variables +17 -22
  350. package/src/themes/default/modules/dimmer.variables +7 -8
  351. package/src/themes/default/modules/dropdown.overrides +17 -17
  352. package/src/themes/default/modules/dropdown.variables +20 -21
  353. package/src/themes/default/modules/embed.variables +9 -10
  354. package/src/themes/default/modules/flyout.variables +6 -6
  355. package/src/themes/default/modules/modal.variables +18 -18
  356. package/src/themes/default/modules/nag.variables +11 -14
  357. package/src/themes/default/modules/popup.variables +14 -13
  358. package/src/themes/default/modules/progress.variables +10 -11
  359. package/src/themes/default/modules/rating.variables +10 -11
  360. package/src/themes/default/modules/search.variables +9 -11
  361. package/src/themes/default/modules/shape.variables +6 -6
  362. package/src/themes/default/modules/sidebar.variables +4 -4
  363. package/src/themes/default/modules/slider.variables +48 -49
  364. package/src/themes/default/modules/sticky.variables +1 -1
  365. package/src/themes/default/modules/toast.variables +1 -1
  366. package/src/themes/default/modules/transition.overrides +936 -915
  367. package/src/themes/default/modules/transition.variables +8 -1
  368. package/src/themes/default/views/card.variables +20 -22
  369. package/src/themes/default/views/comment.variables +6 -8
  370. package/src/themes/default/views/feed.variables +6 -6
  371. package/src/themes/default/views/item.variables +6 -9
  372. package/src/themes/default/views/statistic.variables +8 -8
  373. package/src/themes/duo/elements/loader.variables +1 -1
  374. package/src/themes/famfamfam/elements/flag.overrides +263 -268
  375. package/src/themes/famfamfam/elements/flag.variables +3 -3
  376. package/src/themes/fixed-width/collections/grid.variables +1 -1
  377. package/src/themes/fixed-width/modules/modal.variables +3 -5
  378. package/src/themes/flat/collections/form.overrides +9 -9
  379. package/src/themes/flat/collections/form.variables +4 -5
  380. package/src/themes/flat/globals/site.variables +61 -66
  381. package/src/themes/github/collections/breadcrumb.variables +0 -1
  382. package/src/themes/github/collections/form.overrides +7 -8
  383. package/src/themes/github/collections/form.variables +12 -13
  384. package/src/themes/github/collections/grid.variables +1 -2
  385. package/src/themes/github/collections/menu.overrides +2 -2
  386. package/src/themes/github/collections/menu.variables +11 -12
  387. package/src/themes/github/collections/message.overrides +3 -3
  388. package/src/themes/github/collections/message.variables +5 -5
  389. package/src/themes/github/collections/table.variables +1 -1
  390. package/src/themes/github/elements/button.overrides +0 -1
  391. package/src/themes/github/elements/button.variables +14 -14
  392. package/src/themes/github/elements/header.variables +2 -2
  393. package/src/themes/github/elements/icon.overrides +179 -179
  394. package/src/themes/github/elements/icon.variables +10 -10
  395. package/src/themes/github/elements/image.variables +1 -1
  396. package/src/themes/github/elements/input.overrides +16 -16
  397. package/src/themes/github/elements/input.variables +3 -3
  398. package/src/themes/github/elements/label.overrides +3 -3
  399. package/src/themes/github/elements/label.variables +0 -1
  400. package/src/themes/github/elements/segment.variables +2 -3
  401. package/src/themes/github/elements/step.overrides +13 -13
  402. package/src/themes/github/elements/step.variables +2 -2
  403. package/src/themes/github/globals/site.variables +2 -2
  404. package/src/themes/github/modules/dropdown.overrides +18 -19
  405. package/src/themes/github/modules/dropdown.variables +1 -1
  406. package/src/themes/github/modules/popup.variables +0 -2
  407. package/src/themes/instagram/views/card.overrides +3 -4
  408. package/src/themes/instagram/views/card.variables +3 -4
  409. package/src/themes/joypixels/elements/emoji.overrides +0 -2
  410. package/src/themes/joypixels/elements/emoji.variables +3554 -3554
  411. package/src/themes/material/collections/menu.variables +1 -1
  412. package/src/themes/material/elements/button.overrides +6 -8
  413. package/src/themes/material/elements/button.variables +28 -28
  414. package/src/themes/material/elements/header.overrides +2 -2
  415. package/src/themes/material/elements/header.variables +2 -4
  416. package/src/themes/material/elements/icon.overrides +932 -932
  417. package/src/themes/material/elements/icon.variables +11 -11
  418. package/src/themes/material/globals/site.variables +78 -79
  419. package/src/themes/material/modules/dropdown.overrides +1 -1
  420. package/src/themes/material/modules/dropdown.variables +1 -1
  421. package/src/themes/material/modules/modal.overrides +2 -2
  422. package/src/themes/material/modules/modal.variables +1 -2
  423. package/src/themes/pulsar/elements/loader.overrides +58 -58
  424. package/src/themes/raised/elements/button.variables +8 -8
  425. package/src/themes/resetcss/globals/reset.overrides +115 -33
  426. package/src/themes/resetcss/globals/reset.variables +1 -1
  427. package/src/themes/round/elements/button.variables +11 -14
  428. package/src/themes/rtl/globals/site.variables +5 -6
  429. package/src/themes/striped/modules/progress.overrides +20 -16
  430. package/src/themes/systemfont/globals/reset.overrides +1 -1
  431. package/src/themes/systemfont/globals/site.variables +5 -5
  432. package/src/themes/timeline/views/feed.overrides +12 -12
  433. package/src/themes/timeline/views/feed.variables +4 -4
  434. package/src/themes/twitter/elements/button.overrides +4 -5
  435. package/src/themes/twitter/elements/button.variables +6 -7
  436. package/src/themes/twitter/elements/emoji.variables +3555 -3555
  437. package/tasks/admin/components/create.js +274 -276
  438. package/tasks/admin/components/init.js +123 -130
  439. package/tasks/admin/components/update.js +149 -157
  440. package/tasks/admin/distributions/create.js +184 -187
  441. package/tasks/admin/distributions/init.js +123 -130
  442. package/tasks/admin/distributions/update.js +145 -152
  443. package/tasks/admin/publish.js +5 -7
  444. package/tasks/admin/register.js +36 -38
  445. package/tasks/admin/release.js +8 -10
  446. package/tasks/build/assets.js +42 -39
  447. package/tasks/build/css.js +225 -216
  448. package/tasks/build/javascript.js +118 -113
  449. package/tasks/build.js +10 -10
  450. package/tasks/check-install.js +14 -16
  451. package/tasks/clean.js +5 -5
  452. package/tasks/collections/admin.js +34 -36
  453. package/tasks/collections/build.js +18 -20
  454. package/tasks/collections/docs.js +9 -11
  455. package/tasks/collections/install.js +9 -11
  456. package/tasks/collections/rtl.js +9 -11
  457. package/tasks/collections/various.js +8 -10
  458. package/tasks/config/admin/github.js +17 -17
  459. package/tasks/config/admin/oauth.example.js +4 -4
  460. package/tasks/config/admin/release.js +98 -98
  461. package/tasks/config/admin/templates/component-package.js +9 -10
  462. package/tasks/config/admin/templates/css-package.js +18 -20
  463. package/tasks/config/admin/templates/less-package.js +11 -13
  464. package/tasks/config/defaults.js +116 -114
  465. package/tasks/config/docs.js +23 -23
  466. package/tasks/config/npm/gulpfile.js +8 -9
  467. package/tasks/config/project/config.js +127 -134
  468. package/tasks/config/project/install.js +715 -713
  469. package/tasks/config/project/release.js +32 -38
  470. package/tasks/config/tasks.js +165 -156
  471. package/tasks/config/user.js +23 -26
  472. package/tasks/docs/build.js +97 -95
  473. package/tasks/docs/metadata.js +90 -96
  474. package/tasks/docs/serve.js +80 -81
  475. package/tasks/install.js +370 -378
  476. package/tasks/rtl/build.js +2 -2
  477. package/tasks/rtl/watch.js +2 -2
  478. package/tasks/version.js +4 -4
  479. package/tasks/watch.js +28 -30
  480. package/test/meteor/assets.js +10 -13
  481. package/test/meteor/fonts.js +12 -13
  482. package/test/modules/accordion.spec.js +6 -8
  483. package/test/modules/checkbox.spec.js +5 -7
  484. package/test/modules/dropdown.spec.js +5 -7
  485. package/test/modules/modal.spec.js +6 -8
  486. package/test/modules/module.spec.js +158 -178
  487. package/test/modules/popup.spec.js +5 -7
  488. package/test/modules/search.spec.js +5 -7
  489. package/test/modules/shape.spec.js +5 -7
  490. package/test/modules/sidebar.spec.js +5 -7
  491. package/test/modules/tab.spec.js +6 -8
  492. package/test/modules/transition.spec.js +5 -7
  493. package/test/modules/video.spec.js +5 -7
@@ -8,704 +8,686 @@
8
8
  *
9
9
  */
10
10
 
11
- ;(function ($, window, document, undefined) {
12
-
13
- "use strict";
14
-
15
- $.isFunction = $.isFunction || function(obj) {
16
- return typeof obj === "function" && typeof obj.nodeType !== "number";
17
- };
18
-
19
- window = (typeof window != 'undefined' && window.Math == Math)
20
- ? window
21
- : (typeof self != 'undefined' && self.Math == Math)
22
- ? self
23
- : Function('return this')()
24
- ;
25
-
26
- $.fn.state = function(parameters) {
27
- var
28
- $allModules = $(this),
29
-
30
- moduleSelector = $allModules.selector || '',
31
-
32
- time = new Date().getTime(),
33
- performance = [],
34
-
35
- query = arguments[0],
36
- methodInvoked = (typeof query == 'string'),
37
- queryArguments = [].slice.call(arguments, 1),
38
-
39
- returnedValue
40
- ;
41
- $allModules
42
- .each(function() {
43
- var
44
- settings = ( $.isPlainObject(parameters) )
45
- ? $.extend(true, {}, $.fn.state.settings, parameters)
46
- : $.extend({}, $.fn.state.settings),
47
-
48
- error = settings.error,
49
- metadata = settings.metadata,
50
- className = settings.className,
51
- namespace = settings.namespace,
52
- states = settings.states,
53
- text = settings.text,
54
-
55
- eventNamespace = '.' + namespace,
56
- moduleNamespace = namespace + '-module',
57
-
58
- $module = $(this),
59
-
60
- element = this,
61
- instance = $module.data(moduleNamespace),
62
-
63
- module
64
- ;
65
- module = {
66
-
67
- initialize: function() {
68
- module.verbose('Initializing module');
69
-
70
- // allow module to guess desired state based on element
71
- if(settings.automatic) {
72
- module.add.defaults();
73
- }
74
-
75
- // bind events with delegated events
76
- if(settings.context && moduleSelector !== '') {
77
- ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
78
- .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
79
- .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
80
- .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
81
- ;
82
- }
83
- else {
84
- $module
85
- .on('mouseenter' + eventNamespace, module.change.text)
86
- .on('mouseleave' + eventNamespace, module.reset.text)
87
- .on('click' + eventNamespace, module.toggle.state)
88
- ;
89
- }
90
- module.instantiate();
91
- },
11
+ (function ($, window, document, undefined) {
12
+ 'use strict';
92
13
 
93
- instantiate: function() {
94
- module.verbose('Storing instance of module', module);
95
- instance = module;
96
- $module
97
- .data(moduleNamespace, module)
98
- ;
99
- },
14
+ function isFunction(obj) {
15
+ return typeof obj === 'function' && typeof obj.nodeType !== 'number';
16
+ }
100
17
 
101
- destroy: function() {
102
- module.verbose('Destroying previous module', instance);
103
- $module
104
- .off(eventNamespace)
105
- .removeData(moduleNamespace)
106
- ;
107
- },
18
+ window = (typeof window != 'undefined' && window.Math == Math)
19
+ ? window
20
+ : globalThis;
108
21
 
109
- refresh: function() {
110
- module.verbose('Refreshing selector cache');
111
- $module = $(element);
112
- },
22
+ $.fn.state = function (parameters) {
23
+ var
24
+ $allModules = $(this),
113
25
 
114
- add: {
115
- defaults: function() {
116
- var
117
- userStates = parameters && $.isPlainObject(parameters.states)
118
- ? parameters.states
119
- : {}
120
- ;
121
- $.each(settings.defaults, function(type, typeStates) {
122
- if( module.is[type] !== undefined && module.is[type]() ) {
123
- module.verbose('Adding default states', type, element);
124
- $.extend(settings.states, typeStates, userStates);
125
- }
126
- });
127
- }
128
- },
26
+ moduleSelector = $allModules.selector || '',
129
27
 
130
- is: {
131
-
132
- active: function() {
133
- return $module.hasClass(className.active);
134
- },
135
- loading: function() {
136
- return $module.hasClass(className.loading);
137
- },
138
- inactive: function() {
139
- return !( $module.hasClass(className.active) );
140
- },
141
- state: function(state) {
142
- if(className[state] === undefined) {
143
- return false;
144
- }
145
- return $module.hasClass( className[state] );
146
- },
147
-
148
- enabled: function() {
149
- return !( $module.is(settings.filter.active) );
150
- },
151
- disabled: function() {
152
- return ( $module.is(settings.filter.active) );
153
- },
154
- textEnabled: function() {
155
- return !( $module.is(settings.filter.text) );
156
- },
157
-
158
- // definitions for automatic type detection
159
- button: function() {
160
- return $module.is('.button:not(a, .submit)');
161
- },
162
- input: function() {
163
- return $module.is('input');
164
- },
165
- progress: function() {
166
- return $module.is('.ui.progress');
167
- }
168
- },
28
+ time = new Date().getTime(),
29
+ performance = [],
169
30
 
170
- allow: function(state) {
171
- module.debug('Now allowing state', state);
172
- states[state] = true;
173
- },
174
- disallow: function(state) {
175
- module.debug('No longer allowing', state);
176
- states[state] = false;
177
- },
31
+ query = arguments[0],
32
+ methodInvoked = (typeof query == 'string'),
33
+ queryArguments = [].slice.call(arguments, 1),
178
34
 
179
- allows: function(state) {
180
- return states[state] || false;
181
- },
35
+ returnedValue
36
+ ;
37
+ $allModules.each(function () {
38
+ var
39
+ settings = ($.isPlainObject(parameters))
40
+ ? $.extend(true, {}, $.fn.state.settings, parameters)
41
+ : $.extend({}, $.fn.state.settings),
182
42
 
183
- enable: function() {
184
- $module.removeClass(className.disabled);
185
- },
43
+ error = settings.error,
44
+ metadata = settings.metadata,
45
+ className = settings.className,
46
+ namespace = settings.namespace,
47
+ states = settings.states,
48
+ text = settings.text,
186
49
 
187
- disable: function() {
188
- $module.addClass(className.disabled);
189
- },
50
+ eventNamespace = '.' + namespace,
51
+ moduleNamespace = namespace + '-module',
190
52
 
191
- setState: function(state) {
192
- if(module.allows(state)) {
193
- $module.addClass( className[state] );
194
- }
195
- },
53
+ $module = $(this),
196
54
 
197
- removeState: function(state) {
198
- if(module.allows(state)) {
199
- $module.removeClass( className[state] );
200
- }
201
- },
55
+ element = this,
56
+ instance = $module.data(moduleNamespace),
202
57
 
203
- toggle: {
204
- state: function() {
205
- var
206
- apiRequest,
207
- requestCancelled
58
+ module
208
59
  ;
209
- if( module.allows('active') && module.is.enabled() ) {
210
- module.refresh();
211
- if($.fn.api !== undefined) {
212
- apiRequest = $module.api('get request');
213
- requestCancelled = $module.api('was cancelled');
214
- if( requestCancelled ) {
215
- module.debug('API Request cancelled by beforesend');
216
- settings.activateTest = function(){ return false; };
217
- settings.deactivateTest = function(){ return false; };
60
+ module = {
61
+
62
+ initialize: function () {
63
+ module.verbose('Initializing module');
64
+
65
+ // allow module to guess desired state based on element
66
+ if (settings.automatic) {
67
+ module.add.defaults();
68
+ }
69
+
70
+ // bind events with delegated events
71
+ if (settings.context && moduleSelector !== '') {
72
+ ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
73
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
74
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
75
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
76
+ ;
77
+ } else {
78
+ $module
79
+ .on('mouseenter' + eventNamespace, module.change.text)
80
+ .on('mouseleave' + eventNamespace, module.reset.text)
81
+ .on('click' + eventNamespace, module.toggle.state)
82
+ ;
83
+ }
84
+ module.instantiate();
85
+ },
86
+
87
+ instantiate: function () {
88
+ module.verbose('Storing instance of module', module);
89
+ instance = module;
90
+ $module
91
+ .data(moduleNamespace, module)
92
+ ;
93
+ },
94
+
95
+ destroy: function () {
96
+ module.verbose('Destroying previous module', instance);
97
+ $module
98
+ .off(eventNamespace)
99
+ .removeData(moduleNamespace)
100
+ ;
101
+ },
102
+
103
+ refresh: function () {
104
+ module.verbose('Refreshing selector cache');
105
+ $module = $(element);
106
+ },
107
+
108
+ add: {
109
+ defaults: function () {
110
+ var
111
+ userStates = parameters && $.isPlainObject(parameters.states)
112
+ ? parameters.states
113
+ : {}
114
+ ;
115
+ $.each(settings.defaults, function (type, typeStates) {
116
+ if (module.is[type] !== undefined && module.is[type]()) {
117
+ module.verbose('Adding default states', type, element);
118
+ $.extend(settings.states, typeStates, userStates);
119
+ }
120
+ });
121
+ },
122
+ },
123
+
124
+ is: {
125
+
126
+ active: function () {
127
+ return $module.hasClass(className.active);
128
+ },
129
+ loading: function () {
130
+ return $module.hasClass(className.loading);
131
+ },
132
+ inactive: function () {
133
+ return !($module.hasClass(className.active));
134
+ },
135
+ state: function (state) {
136
+ if (className[state] === undefined) {
137
+ return false;
138
+ }
139
+
140
+ return $module.hasClass(className[state]);
141
+ },
142
+
143
+ enabled: function () {
144
+ return !($module.is(settings.filter.active));
145
+ },
146
+ disabled: function () {
147
+ return ($module.is(settings.filter.active));
148
+ },
149
+ textEnabled: function () {
150
+ return !($module.is(settings.filter.text));
151
+ },
152
+
153
+ // definitions for automatic type detection
154
+ button: function () {
155
+ return $module.is('.button:not(a, .submit)');
156
+ },
157
+ input: function () {
158
+ return $module.is('input');
159
+ },
160
+ progress: function () {
161
+ return $module.is('.ui.progress');
162
+ },
163
+ },
164
+
165
+ allow: function (state) {
166
+ module.debug('Now allowing state', state);
167
+ states[state] = true;
168
+ },
169
+ disallow: function (state) {
170
+ module.debug('No longer allowing', state);
171
+ states[state] = false;
172
+ },
173
+
174
+ allows: function (state) {
175
+ return states[state] || false;
176
+ },
177
+
178
+ enable: function () {
179
+ $module.removeClass(className.disabled);
180
+ },
181
+
182
+ disable: function () {
183
+ $module.addClass(className.disabled);
184
+ },
185
+
186
+ setState: function (state) {
187
+ if (module.allows(state)) {
188
+ $module.addClass(className[state]);
189
+ }
190
+ },
191
+
192
+ removeState: function (state) {
193
+ if (module.allows(state)) {
194
+ $module.removeClass(className[state]);
195
+ }
196
+ },
197
+
198
+ toggle: {
199
+ state: function () {
200
+ var
201
+ apiRequest,
202
+ requestCancelled
203
+ ;
204
+ if (module.allows('active') && module.is.enabled()) {
205
+ module.refresh();
206
+ if ($.fn.api !== undefined) {
207
+ apiRequest = $module.api('get request');
208
+ requestCancelled = $module.api('was cancelled');
209
+ if (requestCancelled) {
210
+ module.debug('API Request cancelled by beforesend');
211
+ settings.activateTest = function () {
212
+ return false;
213
+ };
214
+ settings.deactivateTest = function () {
215
+ return false;
216
+ };
217
+ } else if (apiRequest) {
218
+ module.listenTo(apiRequest);
219
+
220
+ return;
221
+ }
222
+ }
223
+ module.change.state();
224
+ }
225
+ },
226
+ },
227
+
228
+ listenTo: function (apiRequest) {
229
+ module.debug('API request detected, waiting for state signal', apiRequest);
230
+ if (apiRequest) {
231
+ if (text.loading) {
232
+ module.update.text(text.loading);
233
+ }
234
+ $.when(apiRequest)
235
+ .then(function () {
236
+ if (apiRequest.state() == 'resolved') {
237
+ module.debug('API request succeeded');
238
+ settings.activateTest = function () {
239
+ return true;
240
+ };
241
+ settings.deactivateTest = function () {
242
+ return true;
243
+ };
244
+ } else {
245
+ module.debug('API request failed');
246
+ settings.activateTest = function () {
247
+ return false;
248
+ };
249
+ settings.deactivateTest = function () {
250
+ return false;
251
+ };
252
+ }
253
+ module.change.state();
254
+ })
255
+ ;
256
+ }
257
+ },
258
+
259
+ // checks whether active/inactive state can be given
260
+ change: {
261
+
262
+ state: function () {
263
+ module.debug('Determining state change direction');
264
+ // inactive to active change
265
+ if (module.is.inactive()) {
266
+ module.activate();
267
+ } else {
268
+ module.deactivate();
269
+ }
270
+ if (settings.sync) {
271
+ module.sync();
272
+ }
273
+ settings.onChange.call(element);
274
+ },
275
+
276
+ text: function () {
277
+ if (module.is.textEnabled()) {
278
+ if (module.is.disabled()) {
279
+ module.verbose('Changing text to disabled text', text.hover);
280
+ module.update.text(text.disabled);
281
+ } else if (module.is.active()) {
282
+ if (text.hover) {
283
+ module.verbose('Changing text to hover text', text.hover);
284
+ module.update.text(text.hover);
285
+ } else if (text.deactivate) {
286
+ module.verbose('Changing text to deactivating text', text.deactivate);
287
+ module.update.text(text.deactivate);
288
+ }
289
+ } else {
290
+ if (text.hover) {
291
+ module.verbose('Changing text to hover text', text.hover);
292
+ module.update.text(text.hover);
293
+ } else if (text.activate) {
294
+ module.verbose('Changing text to activating text', text.activate);
295
+ module.update.text(text.activate);
296
+ }
297
+ }
298
+ }
299
+ },
300
+
301
+ },
302
+
303
+ activate: function () {
304
+ if (settings.activateTest.call(element)) {
305
+ module.debug('Setting state to active');
306
+ $module
307
+ .addClass(className.active)
308
+ ;
309
+ module.update.text(text.active);
310
+ settings.onActivate.call(element);
311
+ }
312
+ },
313
+
314
+ deactivate: function () {
315
+ if (settings.deactivateTest.call(element)) {
316
+ module.debug('Setting state to inactive');
317
+ $module
318
+ .removeClass(className.active)
319
+ ;
320
+ module.update.text(text.inactive);
321
+ settings.onDeactivate.call(element);
322
+ }
323
+ },
324
+
325
+ sync: function () {
326
+ module.verbose('Syncing other buttons to current state');
327
+ if (module.is.active()) {
328
+ $allModules
329
+ .not($module)
330
+ .state('activate')
331
+ ;
332
+ } else {
333
+ $allModules
334
+ .not($module)
335
+ .state('deactivate')
336
+ ;
337
+ }
338
+ },
339
+
340
+ get: {
341
+ text: function () {
342
+ return (settings.selector.text)
343
+ ? $module.find(settings.selector.text).text()
344
+ : $module.html();
345
+ },
346
+ textFor: function (state) {
347
+ return text[state] || false;
348
+ },
349
+ },
350
+
351
+ flash: {
352
+ text: function (text, duration, callback) {
353
+ var
354
+ previousText = module.get.text();
355
+ module.debug('Flashing text message', text, duration);
356
+ text = text || settings.text.flash;
357
+ duration = duration || settings.flashDuration;
358
+ callback = callback || function () {};
359
+ module.update.text(text);
360
+ setTimeout(function () {
361
+ module.update.text(previousText);
362
+ callback.call(element);
363
+ }, duration);
364
+ },
365
+ },
366
+
367
+ reset: {
368
+ // on mouseout sets text to previous value
369
+ text: function () {
370
+ var
371
+ activeText = text.active || $module.data(metadata.storedText),
372
+ inactiveText = text.inactive || $module.data(metadata.storedText)
373
+ ;
374
+ if (module.is.textEnabled()) {
375
+ if (module.is.active() && activeText) {
376
+ module.verbose('Resetting active text', activeText);
377
+ module.update.text(activeText);
378
+ } else if (inactiveText) {
379
+ module.verbose('Resetting inactive text', activeText);
380
+ module.update.text(inactiveText);
381
+ }
382
+ }
383
+ },
384
+ },
385
+
386
+ update: {
387
+ text: function (text) {
388
+ var
389
+ currentText = module.get.text();
390
+ if (text && text !== currentText) {
391
+ module.debug('Updating text', text);
392
+ if (settings.selector.text) {
393
+ $module
394
+ .data(metadata.storedText, text)
395
+ .find(settings.selector.text)
396
+ .text(text)
397
+ ;
398
+ } else {
399
+ $module
400
+ .data(metadata.storedText, text)
401
+ .html(text)
402
+ ;
403
+ }
404
+ } else {
405
+ module.debug('Text is already set, ignoring update', text);
406
+ }
407
+ },
408
+ },
409
+
410
+ setting: function (name, value) {
411
+ module.debug('Changing setting', name, value);
412
+ if ($.isPlainObject(name)) {
413
+ $.extend(true, settings, name);
414
+ } else if (value !== undefined) {
415
+ if ($.isPlainObject(settings[name])) {
416
+ $.extend(true, settings[name], value);
417
+ } else {
418
+ settings[name] = value;
419
+ }
420
+ } else {
421
+ return settings[name];
422
+ }
423
+ },
424
+ internal: function (name, value) {
425
+ if ($.isPlainObject(name)) {
426
+ $.extend(true, module, name);
427
+ } else if (value !== undefined) {
428
+ module[name] = value;
429
+ } else {
430
+ return module[name];
431
+ }
432
+ },
433
+ debug: function () {
434
+ if (!settings.silent && settings.debug) {
435
+ if (settings.performance) {
436
+ module.performance.log(arguments);
437
+ } else {
438
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
439
+ module.debug.apply(console, arguments);
440
+ }
441
+ }
442
+ },
443
+ verbose: function () {
444
+ if (!settings.silent && settings.verbose && settings.debug) {
445
+ if (settings.performance) {
446
+ module.performance.log(arguments);
447
+ } else {
448
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
449
+ module.verbose.apply(console, arguments);
450
+ }
451
+ }
452
+ },
453
+ error: function () {
454
+ if (!settings.silent) {
455
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
456
+ module.error.apply(console, arguments);
457
+ }
458
+ },
459
+ performance: {
460
+ log: function (message) {
461
+ var
462
+ currentTime,
463
+ executionTime,
464
+ previousTime
465
+ ;
466
+ if (settings.performance) {
467
+ currentTime = new Date().getTime();
468
+ previousTime = time || currentTime;
469
+ executionTime = currentTime - previousTime;
470
+ time = currentTime;
471
+ performance.push({
472
+ Name: message[0],
473
+ Arguments: [].slice.call(message, 1) || '',
474
+ Element: element,
475
+ 'Execution Time': executionTime,
476
+ });
477
+ }
478
+ clearTimeout(module.performance.timer);
479
+ module.performance.timer = setTimeout(module.performance.display, 500);
480
+ },
481
+ display: function () {
482
+ var
483
+ title = settings.name + ':',
484
+ totalTime = 0
485
+ ;
486
+ time = false;
487
+ clearTimeout(module.performance.timer);
488
+ $.each(performance, function (index, data) {
489
+ totalTime += data['Execution Time'];
490
+ });
491
+ title += ' ' + totalTime + 'ms';
492
+ if (moduleSelector) {
493
+ title += ' \'' + moduleSelector + '\'';
494
+ }
495
+ if ((console.group !== undefined || console.table !== undefined) && performance.length > 0) {
496
+ console.groupCollapsed(title);
497
+ if (console.table) {
498
+ console.table(performance);
499
+ } else {
500
+ $.each(performance, function (index, data) {
501
+ console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
502
+ });
503
+ }
504
+ console.groupEnd();
505
+ }
506
+ performance = [];
507
+ },
508
+ },
509
+ invoke: function (query, passedArguments, context) {
510
+ var
511
+ object = instance,
512
+ maxDepth,
513
+ found,
514
+ response
515
+ ;
516
+ passedArguments = passedArguments || queryArguments;
517
+ context = context || element;
518
+ if (typeof query == 'string' && object !== undefined) {
519
+ query = query.split(/[\. ]/);
520
+ maxDepth = query.length - 1;
521
+ $.each(query, function (depth, value) {
522
+ var camelCaseValue = (depth != maxDepth)
523
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
524
+ : query
525
+ ;
526
+ if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
527
+ object = object[camelCaseValue];
528
+ } else if (object[camelCaseValue] !== undefined) {
529
+ found = object[camelCaseValue];
530
+
531
+ return false;
532
+ } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
533
+ object = object[value];
534
+ } else if (object[value] !== undefined) {
535
+ found = object[value];
536
+
537
+ return false;
538
+ } else {
539
+ module.error(error.method, query);
540
+
541
+ return false;
542
+ }
543
+ });
544
+ }
545
+ if (isFunction(found)) {
546
+ response = found.apply(context, passedArguments);
547
+ } else if (found !== undefined) {
548
+ response = found;
549
+ }
550
+ if (Array.isArray(returnedValue)) {
551
+ returnedValue.push(response);
552
+ } else if (returnedValue !== undefined) {
553
+ returnedValue = [returnedValue, response];
554
+ } else if (response !== undefined) {
555
+ returnedValue = response;
556
+ }
557
+
558
+ return found;
559
+ },
560
+ };
561
+
562
+ if (methodInvoked) {
563
+ if (instance === undefined) {
564
+ module.initialize();
218
565
  }
219
- else if(apiRequest) {
220
- module.listenTo(apiRequest);
221
- return;
566
+ module.invoke(query);
567
+ } else {
568
+ if (instance !== undefined) {
569
+ instance.invoke('destroy');
222
570
  }
223
- }
224
- module.change.state();
571
+ module.initialize();
225
572
  }
226
- }
227
- },
573
+ });
228
574
 
229
- listenTo: function(apiRequest) {
230
- module.debug('API request detected, waiting for state signal', apiRequest);
231
- if(apiRequest) {
232
- if(text.loading) {
233
- module.update.text(text.loading);
234
- }
235
- $.when(apiRequest)
236
- .then(function() {
237
- if(apiRequest.state() == 'resolved') {
238
- module.debug('API request succeeded');
239
- settings.activateTest = function(){ return true; };
240
- settings.deactivateTest = function(){ return true; };
241
- }
242
- else {
243
- module.debug('API request failed');
244
- settings.activateTest = function(){ return false; };
245
- settings.deactivateTest = function(){ return false; };
246
- }
247
- module.change.state();
248
- })
249
- ;
250
- }
251
- },
575
+ return (returnedValue !== undefined)
576
+ ? returnedValue
577
+ : this;
578
+ };
252
579
 
253
- // checks whether active/inactive state can be given
254
- change: {
580
+ $.fn.state.settings = {
255
581
 
256
- state: function() {
257
- module.debug('Determining state change direction');
258
- // inactive to active change
259
- if( module.is.inactive() ) {
260
- module.activate();
261
- }
262
- else {
263
- module.deactivate();
264
- }
265
- if(settings.sync) {
266
- module.sync();
267
- }
268
- settings.onChange.call(element);
269
- },
270
-
271
- text: function() {
272
- if( module.is.textEnabled() ) {
273
- if(module.is.disabled() ) {
274
- module.verbose('Changing text to disabled text', text.hover);
275
- module.update.text(text.disabled);
276
- }
277
- else if( module.is.active() ) {
278
- if(text.hover) {
279
- module.verbose('Changing text to hover text', text.hover);
280
- module.update.text(text.hover);
281
- }
282
- else if(text.deactivate) {
283
- module.verbose('Changing text to deactivating text', text.deactivate);
284
- module.update.text(text.deactivate);
285
- }
286
- }
287
- else {
288
- if(text.hover) {
289
- module.verbose('Changing text to hover text', text.hover);
290
- module.update.text(text.hover);
291
- }
292
- else if(text.activate){
293
- module.verbose('Changing text to activating text', text.activate);
294
- module.update.text(text.activate);
295
- }
296
- }
297
- }
298
- }
582
+ // module info
583
+ name: 'State',
299
584
 
300
- },
585
+ // debug output
586
+ debug: false,
301
587
 
302
- activate: function() {
303
- if( settings.activateTest.call(element) ) {
304
- module.debug('Setting state to active');
305
- $module
306
- .addClass(className.active)
307
- ;
308
- module.update.text(text.active);
309
- settings.onActivate.call(element);
310
- }
311
- },
588
+ // verbose debug output
589
+ verbose: false,
312
590
 
313
- deactivate: function() {
314
- if( settings.deactivateTest.call(element) ) {
315
- module.debug('Setting state to inactive');
316
- $module
317
- .removeClass(className.active)
318
- ;
319
- module.update.text(text.inactive);
320
- settings.onDeactivate.call(element);
321
- }
322
- },
591
+ // namespace for events
592
+ namespace: 'state',
323
593
 
324
- sync: function() {
325
- module.verbose('Syncing other buttons to current state');
326
- if( module.is.active() ) {
327
- $allModules
328
- .not($module)
329
- .state('activate');
330
- }
331
- else {
332
- $allModules
333
- .not($module)
334
- .state('deactivate')
335
- ;
336
- }
337
- },
594
+ // debug data includes performance
595
+ performance: true,
338
596
 
339
- get: {
340
- text: function() {
341
- return (settings.selector.text)
342
- ? $module.find(settings.selector.text).text()
343
- : $module.html()
344
- ;
345
- },
346
- textFor: function(state) {
347
- return text[state] || false;
348
- }
349
- },
597
+ // callback occurs on state change
598
+ onActivate: function () {},
599
+ onDeactivate: function () {},
600
+ onChange: function () {},
350
601
 
351
- flash: {
352
- text: function(text, duration, callback) {
353
- var
354
- previousText = module.get.text()
355
- ;
356
- module.debug('Flashing text message', text, duration);
357
- text = text || settings.text.flash;
358
- duration = duration || settings.flashDuration;
359
- callback = callback || function() {};
360
- module.update.text(text);
361
- setTimeout(function(){
362
- module.update.text(previousText);
363
- callback.call(element);
364
- }, duration);
365
- }
602
+ // state test functions
603
+ activateTest: function () {
604
+ return true;
366
605
  },
367
-
368
- reset: {
369
- // on mouseout sets text to previous value
370
- text: function() {
371
- var
372
- activeText = text.active || $module.data(metadata.storedText),
373
- inactiveText = text.inactive || $module.data(metadata.storedText)
374
- ;
375
- if( module.is.textEnabled() ) {
376
- if( module.is.active() && activeText) {
377
- module.verbose('Resetting active text', activeText);
378
- module.update.text(activeText);
379
- }
380
- else if(inactiveText) {
381
- module.verbose('Resetting inactive text', activeText);
382
- module.update.text(inactiveText);
383
- }
384
- }
385
- }
606
+ deactivateTest: function () {
607
+ return true;
386
608
  },
387
609
 
388
- update: {
389
- text: function(text) {
390
- var
391
- currentText = module.get.text()
392
- ;
393
- if(text && text !== currentText) {
394
- module.debug('Updating text', text);
395
- if(settings.selector.text) {
396
- $module
397
- .data(metadata.storedText, text)
398
- .find(settings.selector.text)
399
- .text(text)
400
- ;
401
- }
402
- else {
403
- $module
404
- .data(metadata.storedText, text)
405
- .html(text)
406
- ;
407
- }
408
- }
409
- else {
410
- module.debug('Text is already set, ignoring update', text);
411
- }
412
- }
413
- },
610
+ // whether to automatically map default states
611
+ automatic: true,
414
612
 
415
- setting: function(name, value) {
416
- module.debug('Changing setting', name, value);
417
- if( $.isPlainObject(name) ) {
418
- $.extend(true, settings, name);
419
- }
420
- else if(value !== undefined) {
421
- if($.isPlainObject(settings[name])) {
422
- $.extend(true, settings[name], value);
423
- }
424
- else {
425
- settings[name] = value;
426
- }
427
- }
428
- else {
429
- return settings[name];
430
- }
431
- },
432
- internal: function(name, value) {
433
- if( $.isPlainObject(name) ) {
434
- $.extend(true, module, name);
435
- }
436
- else if(value !== undefined) {
437
- module[name] = value;
438
- }
439
- else {
440
- return module[name];
441
- }
442
- },
443
- debug: function() {
444
- if(!settings.silent && settings.debug) {
445
- if(settings.performance) {
446
- module.performance.log(arguments);
447
- }
448
- else {
449
- module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
450
- module.debug.apply(console, arguments);
451
- }
452
- }
453
- },
454
- verbose: function() {
455
- if(!settings.silent && settings.verbose && settings.debug) {
456
- if(settings.performance) {
457
- module.performance.log(arguments);
458
- }
459
- else {
460
- module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
461
- module.verbose.apply(console, arguments);
462
- }
463
- }
613
+ // activate / deactivate changes all elements instantiated at same time
614
+ sync: false,
615
+
616
+ // default flash text duration, used for temporarily changing text of an element
617
+ flashDuration: 1000,
618
+
619
+ // selector filter
620
+ filter: {
621
+ text: '.loading, .disabled',
622
+ active: '.disabled',
464
623
  },
465
- error: function() {
466
- if(!settings.silent) {
467
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
468
- module.error.apply(console, arguments);
469
- }
624
+
625
+ context: false,
626
+
627
+ // error
628
+ error: {
629
+ beforeSend: 'The before send function has cancelled state change',
630
+ method: 'The method you called is not defined.',
470
631
  },
471
- performance: {
472
- log: function(message) {
473
- var
474
- currentTime,
475
- executionTime,
476
- previousTime
477
- ;
478
- if(settings.performance) {
479
- currentTime = new Date().getTime();
480
- previousTime = time || currentTime;
481
- executionTime = currentTime - previousTime;
482
- time = currentTime;
483
- performance.push({
484
- 'Name' : message[0],
485
- 'Arguments' : [].slice.call(message, 1) || '',
486
- 'Element' : element,
487
- 'Execution Time' : executionTime
488
- });
489
- }
490
- clearTimeout(module.performance.timer);
491
- module.performance.timer = setTimeout(module.performance.display, 500);
492
- },
493
- display: function() {
494
- var
495
- title = settings.name + ':',
496
- totalTime = 0
497
- ;
498
- time = false;
499
- clearTimeout(module.performance.timer);
500
- $.each(performance, function(index, data) {
501
- totalTime += data['Execution Time'];
502
- });
503
- title += ' ' + totalTime + 'ms';
504
- if(moduleSelector) {
505
- title += ' \'' + moduleSelector + '\'';
506
- }
507
- if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
508
- console.groupCollapsed(title);
509
- if(console.table) {
510
- console.table(performance);
511
- }
512
- else {
513
- $.each(performance, function(index, data) {
514
- console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
515
- });
516
- }
517
- console.groupEnd();
518
- }
519
- performance = [];
520
- }
632
+
633
+ // metadata
634
+ metadata: {
635
+ promise: 'promise',
636
+ storedText: 'stored-text',
521
637
  },
522
- invoke: function(query, passedArguments, context) {
523
- var
524
- object = instance,
525
- maxDepth,
526
- found,
527
- response
528
- ;
529
- passedArguments = passedArguments || queryArguments;
530
- context = context || element;
531
- if(typeof query == 'string' && object !== undefined) {
532
- query = query.split(/[\. ]/);
533
- maxDepth = query.length - 1;
534
- $.each(query, function(depth, value) {
535
- var camelCaseValue = (depth != maxDepth)
536
- ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
537
- : query
538
- ;
539
- if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
540
- object = object[camelCaseValue];
541
- }
542
- else if( object[camelCaseValue] !== undefined ) {
543
- found = object[camelCaseValue];
544
- return false;
545
- }
546
- else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
547
- object = object[value];
548
- }
549
- else if( object[value] !== undefined ) {
550
- found = object[value];
551
- return false;
552
- }
553
- else {
554
- module.error(error.method, query);
555
- return false;
556
- }
557
- });
558
- }
559
- if ( $.isFunction( found ) ) {
560
- response = found.apply(context, passedArguments);
561
- }
562
- else if(found !== undefined) {
563
- response = found;
564
- }
565
- if(Array.isArray(returnedValue)) {
566
- returnedValue.push(response);
567
- }
568
- else if(returnedValue !== undefined) {
569
- returnedValue = [returnedValue, response];
570
- }
571
- else if(response !== undefined) {
572
- returnedValue = response;
573
- }
574
- return found;
575
- }
576
- };
577
-
578
- if(methodInvoked) {
579
- if(instance === undefined) {
580
- module.initialize();
581
- }
582
- module.invoke(query);
583
- }
584
- else {
585
- if(instance !== undefined) {
586
- instance.invoke('destroy');
587
- }
588
- module.initialize();
589
- }
590
- })
591
- ;
592
-
593
- return (returnedValue !== undefined)
594
- ? returnedValue
595
- : this
596
- ;
597
- };
598
-
599
- $.fn.state.settings = {
600
-
601
- // module info
602
- name : 'State',
603
-
604
- // debug output
605
- debug : false,
606
-
607
- // verbose debug output
608
- verbose : false,
609
-
610
- // namespace for events
611
- namespace : 'state',
612
-
613
- // debug data includes performance
614
- performance : true,
615
-
616
- // callback occurs on state change
617
- onActivate : function() {},
618
- onDeactivate : function() {},
619
- onChange : function() {},
620
-
621
- // state test functions
622
- activateTest : function() { return true; },
623
- deactivateTest : function() { return true; },
624
-
625
- // whether to automatically map default states
626
- automatic : true,
627
-
628
- // activate / deactivate changes all elements instantiated at same time
629
- sync : false,
630
-
631
- // default flash text duration, used for temporarily changing text of an element
632
- flashDuration : 1000,
633
-
634
- // selector filter
635
- filter : {
636
- text : '.loading, .disabled',
637
- active : '.disabled'
638
- },
639
-
640
- context : false,
641
-
642
- // error
643
- error: {
644
- beforeSend : 'The before send function has cancelled state change',
645
- method : 'The method you called is not defined.'
646
- },
647
-
648
- // metadata
649
- metadata: {
650
- promise : 'promise',
651
- storedText : 'stored-text'
652
- },
653
-
654
- // change class on state
655
- className: {
656
- active : 'active',
657
- disabled : 'disabled',
658
- error : 'error',
659
- loading : 'loading',
660
- success : 'success',
661
- warning : 'warning'
662
- },
663
-
664
- selector: {
665
- // selector for text node
666
- text: false
667
- },
668
-
669
- defaults : {
670
- input: {
671
- disabled : true,
672
- loading : true,
673
- active : true
674
- },
675
- button: {
676
- disabled : true,
677
- loading : true,
678
- active : true,
679
- },
680
- progress: {
681
- active : true,
682
- success : true,
683
- warning : true,
684
- error : true
685
- }
686
- },
687
638
 
688
- states : {
689
- active : true,
690
- disabled : true,
691
- error : true,
692
- loading : true,
693
- success : true,
694
- warning : true
695
- },
639
+ // change class on state
640
+ className: {
641
+ active: 'active',
642
+ disabled: 'disabled',
643
+ error: 'error',
644
+ loading: 'loading',
645
+ success: 'success',
646
+ warning: 'warning',
647
+ },
696
648
 
697
- text : {
698
- disabled : false,
699
- flash : false,
700
- hover : false,
701
- active : false,
702
- inactive : false,
703
- activate : false,
704
- deactivate : false
705
- }
649
+ selector: {
650
+ // selector for text node
651
+ text: false,
652
+ },
706
653
 
707
- };
654
+ defaults: {
655
+ input: {
656
+ disabled: true,
657
+ loading: true,
658
+ active: true,
659
+ },
660
+ button: {
661
+ disabled: true,
662
+ loading: true,
663
+ active: true,
664
+ },
665
+ progress: {
666
+ active: true,
667
+ success: true,
668
+ warning: true,
669
+ error: true,
670
+ },
671
+ },
708
672
 
673
+ states: {
674
+ active: true,
675
+ disabled: true,
676
+ error: true,
677
+ loading: true,
678
+ success: true,
679
+ warning: true,
680
+ },
709
681
 
682
+ text: {
683
+ disabled: false,
684
+ flash: false,
685
+ hover: false,
686
+ active: false,
687
+ inactive: false,
688
+ activate: false,
689
+ deactivate: false,
690
+ },
710
691
 
711
- })( jQuery, window, document );
692
+ };
693
+ })(jQuery, window, document);