fomantic-ui 2.9.0-beta.31 → 2.9.0-beta.312

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 (410) hide show
  1. package/.all-contributorsrc +274 -4
  2. package/.github/codeql/codeql-config.yml +4 -0
  3. package/.github/dependabot.yml +10 -0
  4. package/.github/workflows/ci.yml +10 -6
  5. package/.github/workflows/codeql.yml +68 -0
  6. package/.github/workflows/nightly.yml +16 -8
  7. package/.github/workflows/release.yml +34 -0
  8. package/CONTRIBUTORS.md +86 -37
  9. package/FAQ.md +38 -38
  10. package/README.md +8 -8
  11. package/dist/components/accordion.css +176 -36
  12. package/dist/components/accordion.js +9 -3
  13. package/dist/components/accordion.min.css +2 -2
  14. package/dist/components/accordion.min.js +3 -3
  15. package/dist/components/ad.css +4 -4
  16. package/dist/components/ad.min.css +2 -2
  17. package/dist/components/api.js +89 -30
  18. package/dist/components/api.min.js +3 -3
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +204 -157
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +18 -1
  24. package/dist/components/calendar.js +91 -71
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +3 -3
  27. package/dist/components/card.css +754 -117
  28. package/dist/components/card.min.css +2 -2
  29. package/dist/components/checkbox.css +92 -91
  30. package/dist/components/checkbox.js +20 -13
  31. package/dist/components/checkbox.min.css +2 -2
  32. package/dist/components/checkbox.min.js +3 -3
  33. package/dist/components/comment.css +12 -12
  34. package/dist/components/comment.min.css +2 -2
  35. package/dist/components/container.css +98 -4
  36. package/dist/components/container.min.css +2 -2
  37. package/dist/components/dimmer.css +29 -14
  38. package/dist/components/dimmer.js +17 -5
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +3 -3
  41. package/dist/components/divider.css +31 -31
  42. package/dist/components/divider.min.css +2 -2
  43. package/dist/components/dropdown.css +100 -50
  44. package/dist/components/dropdown.js +189 -138
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +3 -3
  47. package/dist/components/embed.css +5 -5
  48. package/dist/components/embed.js +12 -6
  49. package/dist/components/embed.min.css +2 -2
  50. package/dist/components/embed.min.js +3 -3
  51. package/dist/components/emoji.css +10847 -8841
  52. package/dist/components/emoji.min.css +1 -1
  53. package/dist/components/feed.css +29 -29
  54. package/dist/components/feed.min.css +2 -2
  55. package/dist/components/flag.css +1011 -902
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/form.css +160 -83
  58. package/dist/components/form.js +39 -30
  59. package/dist/components/form.min.css +2 -2
  60. package/dist/components/form.min.js +3 -3
  61. package/dist/components/grid.css +25 -21
  62. package/dist/components/grid.min.css +2 -2
  63. package/dist/components/header.css +6 -4
  64. package/dist/components/header.min.css +2 -2
  65. package/dist/components/icon.css +2063 -1984
  66. package/dist/components/icon.min.css +2 -2
  67. package/dist/components/image.css +1 -1
  68. package/dist/components/image.min.css +1 -1
  69. package/dist/components/input.css +759 -22
  70. package/dist/components/input.min.css +2 -2
  71. package/dist/components/item.css +17 -17
  72. package/dist/components/item.min.css +2 -2
  73. package/dist/components/label.css +72 -68
  74. package/dist/components/label.min.css +2 -2
  75. package/dist/components/list.css +31 -31
  76. package/dist/components/list.min.css +2 -2
  77. package/dist/components/loader.css +352 -352
  78. package/dist/components/loader.min.css +2 -2
  79. package/dist/components/menu.css +108 -76
  80. package/dist/components/menu.min.css +1 -1
  81. package/dist/components/message.css +43 -43
  82. package/dist/components/message.min.css +2 -2
  83. package/dist/components/modal.css +29 -4
  84. package/dist/components/modal.js +140 -56
  85. package/dist/components/modal.min.css +2 -2
  86. package/dist/components/modal.min.js +3 -3
  87. package/dist/components/nag.css +1 -1
  88. package/dist/components/nag.js +2 -2
  89. package/dist/components/nag.min.css +1 -1
  90. package/dist/components/nag.min.js +3 -3
  91. package/dist/components/placeholder.css +33 -33
  92. package/dist/components/placeholder.min.css +2 -2
  93. package/dist/components/popup.css +100 -104
  94. package/dist/components/popup.js +13 -11
  95. package/dist/components/popup.min.css +2 -2
  96. package/dist/components/popup.min.js +3 -3
  97. package/dist/components/progress.css +1 -1
  98. package/dist/components/progress.js +4 -1
  99. package/dist/components/progress.min.css +1 -1
  100. package/dist/components/progress.min.js +3 -3
  101. package/dist/components/rail.css +1 -1
  102. package/dist/components/rail.min.css +1 -1
  103. package/dist/components/rating.css +1 -1
  104. package/dist/components/rating.js +7 -3
  105. package/dist/components/rating.min.css +1 -1
  106. package/dist/components/rating.min.js +3 -3
  107. package/dist/components/reset.css +5 -4
  108. package/dist/components/reset.min.css +2 -2
  109. package/dist/components/reveal.css +1 -1
  110. package/dist/components/reveal.min.css +1 -1
  111. package/dist/components/search.css +6 -6
  112. package/dist/components/search.js +44 -14
  113. package/dist/components/search.min.css +2 -2
  114. package/dist/components/search.min.js +3 -3
  115. package/dist/components/segment.css +118 -34
  116. package/dist/components/segment.min.css +2 -2
  117. package/dist/components/shape.css +1 -1
  118. package/dist/components/shape.js +3 -3
  119. package/dist/components/shape.min.css +1 -1
  120. package/dist/components/shape.min.js +3 -3
  121. package/dist/components/sidebar.css +13 -7
  122. package/dist/components/sidebar.js +116 -37
  123. package/dist/components/sidebar.min.css +2 -2
  124. package/dist/components/sidebar.min.js +3 -3
  125. package/dist/components/site.css +139 -42
  126. package/dist/components/site.js +1 -1
  127. package/dist/components/site.min.css +2 -2
  128. package/dist/components/site.min.js +3 -3
  129. package/dist/components/slider.css +17 -17
  130. package/dist/components/slider.js +68 -51
  131. package/dist/components/slider.min.css +1 -1
  132. package/dist/components/slider.min.js +3 -3
  133. package/dist/components/state.js +2 -2
  134. package/dist/components/state.min.js +3 -3
  135. package/dist/components/statistic.css +4 -4
  136. package/dist/components/statistic.min.css +2 -2
  137. package/dist/components/step.css +31 -31
  138. package/dist/components/step.min.css +2 -2
  139. package/dist/components/sticky.css +1 -1
  140. package/dist/components/sticky.js +6 -6
  141. package/dist/components/sticky.min.css +1 -1
  142. package/dist/components/sticky.min.js +3 -3
  143. package/dist/components/tab.css +5 -5
  144. package/dist/components/tab.js +24 -6
  145. package/dist/components/tab.min.css +2 -2
  146. package/dist/components/tab.min.js +3 -3
  147. package/dist/components/table.css +1684 -272
  148. package/dist/components/table.min.css +2 -2
  149. package/dist/components/text.css +1 -1
  150. package/dist/components/text.min.css +1 -1
  151. package/dist/components/toast.css +42 -1
  152. package/dist/components/toast.js +66 -32
  153. package/dist/components/toast.min.css +2 -2
  154. package/dist/components/toast.min.js +3 -3
  155. package/dist/components/transition.css +1 -1
  156. package/dist/components/transition.js +23 -16
  157. package/dist/components/transition.min.css +1 -1
  158. package/dist/components/transition.min.js +3 -3
  159. package/dist/components/visibility.js +4 -4
  160. package/dist/components/visibility.min.js +3 -3
  161. package/dist/semantic.css +20201 -13378
  162. package/dist/semantic.js +990 -542
  163. package/dist/semantic.min.css +3 -3
  164. package/dist/semantic.min.js +3 -3
  165. package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  166. package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  167. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  168. package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  170. package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  172. package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  173. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  174. package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  175. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  176. package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  177. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  178. package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  179. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  180. package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  181. package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  182. package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
  183. package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  184. package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  185. package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  186. package/dist/themes/default/assets/fonts/icons.eot +0 -0
  187. package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
  188. package/dist/themes/default/assets/fonts/icons.ttf +0 -0
  189. package/dist/themes/default/assets/fonts/icons.woff +0 -0
  190. package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  191. package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  192. package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
  193. package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  194. package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  195. package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  196. package/dist/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  197. package/examples/assets/library/iframe-content.js +8 -8
  198. package/examples/assets/library/iframe.js +3 -3
  199. package/examples/components/button.html +1 -1
  200. package/examples/components/card.html +1 -1
  201. package/examples/components/input.html +1 -1
  202. package/examples/components/menu.html +1 -1
  203. package/examples/components/site.html +1 -1
  204. package/examples/components/table.html +1 -1
  205. package/package.json +18 -16
  206. package/scripts/nightly-version.js +47 -38
  207. package/src/definitions/behaviors/api.js +88 -29
  208. package/src/definitions/behaviors/form.js +38 -29
  209. package/src/definitions/behaviors/state.js +1 -1
  210. package/src/definitions/behaviors/visibility.js +3 -3
  211. package/src/definitions/collections/form.less +229 -166
  212. package/src/definitions/collections/grid.less +723 -687
  213. package/src/definitions/collections/menu.less +232 -170
  214. package/src/definitions/collections/message.less +49 -47
  215. package/src/definitions/collections/table.less +882 -272
  216. package/src/definitions/elements/button.less +611 -469
  217. package/src/definitions/elements/container.less +145 -8
  218. package/src/definitions/elements/divider.less +24 -24
  219. package/src/definitions/elements/emoji.less +39 -10
  220. package/src/definitions/elements/flag.less +53 -18
  221. package/src/definitions/elements/header.less +46 -37
  222. package/src/definitions/elements/icon.less +39 -32
  223. package/src/definitions/elements/input.less +281 -33
  224. package/src/definitions/elements/label.less +132 -128
  225. package/src/definitions/elements/list.less +84 -75
  226. package/src/definitions/elements/loader.less +99 -98
  227. package/src/definitions/elements/placeholder.less +32 -32
  228. package/src/definitions/elements/segment.less +177 -56
  229. package/src/definitions/elements/step.less +76 -72
  230. package/src/definitions/elements/text.less +17 -15
  231. package/src/definitions/globals/reset.less +2 -2
  232. package/src/definitions/globals/site.less +25 -2
  233. package/src/definitions/modules/accordion.js +8 -2
  234. package/src/definitions/modules/accordion.less +371 -219
  235. package/src/definitions/modules/calendar.js +90 -70
  236. package/src/definitions/modules/calendar.less +20 -0
  237. package/src/definitions/modules/checkbox.js +19 -12
  238. package/src/definitions/modules/checkbox.less +83 -227
  239. package/src/definitions/modules/dimmer.js +16 -4
  240. package/src/definitions/modules/dimmer.less +22 -8
  241. package/src/definitions/modules/dropdown.js +188 -137
  242. package/src/definitions/modules/dropdown.less +201 -136
  243. package/src/definitions/modules/embed.js +11 -5
  244. package/src/definitions/modules/embed.less +4 -4
  245. package/src/definitions/modules/modal.js +139 -55
  246. package/src/definitions/modules/modal.less +66 -33
  247. package/src/definitions/modules/nag.js +1 -1
  248. package/src/definitions/modules/nag.less +20 -19
  249. package/src/definitions/modules/popup.js +12 -10
  250. package/src/definitions/modules/popup.less +86 -90
  251. package/src/definitions/modules/progress.js +3 -0
  252. package/src/definitions/modules/progress.less +19 -18
  253. package/src/definitions/modules/rating.js +6 -2
  254. package/src/definitions/modules/rating.less +35 -34
  255. package/src/definitions/modules/search.js +43 -13
  256. package/src/definitions/modules/search.less +35 -19
  257. package/src/definitions/modules/shape.js +2 -2
  258. package/src/definitions/modules/sidebar.js +115 -36
  259. package/src/definitions/modules/sidebar.less +42 -24
  260. package/src/definitions/modules/slider.js +67 -50
  261. package/src/definitions/modules/slider.less +48 -47
  262. package/src/definitions/modules/sticky.js +5 -5
  263. package/src/definitions/modules/sticky.less +3 -1
  264. package/src/definitions/modules/tab.js +23 -5
  265. package/src/definitions/modules/tab.less +4 -4
  266. package/src/definitions/modules/toast.js +65 -31
  267. package/src/definitions/modules/toast.less +51 -16
  268. package/src/definitions/modules/transition.js +22 -15
  269. package/src/definitions/views/ad.less +3 -3
  270. package/src/definitions/views/card.less +522 -375
  271. package/src/definitions/views/comment.less +93 -82
  272. package/src/definitions/views/feed.less +164 -144
  273. package/src/definitions/views/item.less +251 -198
  274. package/src/definitions/views/statistic.less +91 -89
  275. package/src/theme.less +13 -2
  276. package/src/themes/amazon/globals/site.variables +1 -0
  277. package/src/themes/basic/elements/icon.overrides +149 -149
  278. package/src/themes/basic/elements/step.overrides +2 -2
  279. package/src/themes/bookish/elements/header.overrides +1 -1
  280. package/src/themes/chubby/elements/button.overrides +1 -1
  281. package/src/themes/chubby/elements/header.overrides +1 -1
  282. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  283. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  284. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  285. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  286. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  287. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  288. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  289. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  290. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  291. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  292. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  293. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  294. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  295. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  296. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  297. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  298. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  299. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  300. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  301. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  302. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  303. package/src/themes/default/assets/fonts/icons.eot +0 -0
  304. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  305. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  306. package/src/themes/default/assets/fonts/icons.woff +0 -0
  307. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  308. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  309. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  310. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  311. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  312. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  313. package/src/themes/default/collections/form.variables +4 -0
  314. package/src/themes/default/collections/menu.variables +6 -0
  315. package/src/themes/default/collections/table.variables +52 -0
  316. package/src/themes/default/elements/button.variables +7 -1
  317. package/src/themes/default/elements/container.variables +12 -0
  318. package/src/themes/default/elements/divider.overrides +7 -7
  319. package/src/themes/default/elements/emoji.overrides +0 -3090
  320. package/src/themes/default/elements/emoji.variables +3575 -1
  321. package/src/themes/default/elements/flag.overrides +0 -991
  322. package/src/themes/default/elements/flag.variables +1609 -5
  323. package/src/themes/default/elements/icon.overrides +1975 -1949
  324. package/src/themes/default/elements/icon.variables +1 -0
  325. package/src/themes/default/elements/input.variables +15 -0
  326. package/src/themes/default/elements/segment.variables +8 -0
  327. package/src/themes/default/elements/step.overrides +3 -3
  328. package/src/themes/default/globals/site.variables +109 -8
  329. package/src/themes/default/globals/variation.variables +143 -6
  330. package/src/themes/default/modules/accordion.overrides +6 -5
  331. package/src/themes/default/modules/accordion.variables +49 -2
  332. package/src/themes/default/modules/calendar.variables +3 -0
  333. package/src/themes/default/modules/checkbox.overrides +9 -9
  334. package/src/themes/default/modules/checkbox.variables +5 -5
  335. package/src/themes/default/modules/dimmer.variables +1 -1
  336. package/src/themes/default/modules/dropdown.overrides +5 -5
  337. package/src/themes/default/modules/dropdown.variables +7 -10
  338. package/src/themes/default/modules/modal.variables +14 -0
  339. package/src/themes/default/modules/popup.variables +0 -2
  340. package/src/themes/default/modules/toast.variables +3 -0
  341. package/src/themes/default/views/card.variables +8 -0
  342. package/src/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  343. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  344. package/src/themes/famfamfam/elements/flag.variables +20 -0
  345. package/src/themes/github/elements/icon.overrides +206 -206
  346. package/src/themes/github/elements/step.overrides +5 -5
  347. package/src/themes/github/globals/site.variables +1 -0
  348. package/src/themes/github/modules/dropdown.overrides +6 -6
  349. package/src/themes/instagram/views/card.overrides +1 -1
  350. package/src/themes/joypixels/elements/emoji.overrides +0 -3089
  351. package/src/themes/joypixels/elements/emoji.variables +3574 -5
  352. package/src/themes/material/collections/menu.overrides +1 -1
  353. package/src/themes/material/elements/button.overrides +1 -1
  354. package/src/themes/material/elements/header.overrides +1 -1
  355. package/src/themes/material/elements/icon.overrides +932 -932
  356. package/src/themes/material/globals/site.variables +0 -1
  357. package/src/themes/material/modules/dropdown.overrides +1 -1
  358. package/src/themes/material/modules/modal.overrides +1 -1
  359. package/src/themes/pulsar/elements/loader.overrides +2 -2
  360. package/src/themes/resetcss/globals/reset.overrides +3 -3
  361. package/src/themes/rtl/globals/site.overrides +1 -1
  362. package/src/themes/striped/modules/progress.overrides +1 -1
  363. package/src/themes/systemfont/globals/reset.overrides +8 -0
  364. package/src/themes/systemfont/globals/site.variables +10 -0
  365. package/src/themes/twitter/elements/emoji.overrides +0 -3091
  366. package/src/themes/twitter/elements/emoji.variables +3570 -6
  367. package/tasks/admin/distributions/create.js +1 -1
  368. package/tasks/admin/publish.js +1 -1
  369. package/tasks/admin/release.js +1 -1
  370. package/tasks/build/assets.js +1 -1
  371. package/tasks/build/css.js +9 -4
  372. package/tasks/build/javascript.js +3 -3
  373. package/tasks/check-install.js +1 -1
  374. package/tasks/clean.js +1 -1
  375. package/tasks/collections/README.md +1 -1
  376. package/tasks/collections/admin.js +1 -1
  377. package/tasks/config/admin/oauth.example.js +1 -1
  378. package/tasks/config/admin/templates/composer.json +1 -1
  379. package/tasks/config/project/install.js +15 -13
  380. package/tasks/install.js +1 -0
  381. package/tasks/rtl/watch.js +1 -1
  382. package/tasks/version.js +1 -1
  383. package/test/fixtures/accordion.html +1 -1
  384. package/test/fixtures/checkbox.html +1 -1
  385. package/test/fixtures/dropdown.html +1 -1
  386. package/test/fixtures/modal.html +1 -1
  387. package/test/fixtures/popup.html +1 -1
  388. package/test/fixtures/rating.html +1 -1
  389. package/test/fixtures/shape.html +1 -1
  390. package/test/fixtures/sidebar.html +1 -1
  391. package/test/fixtures/tab.html +1 -1
  392. package/test/fixtures/transition.html +1 -1
  393. package/test/fixtures/video.html +1 -1
  394. package/test/helpers/jasmine-jquery.js +2 -2
  395. package/test/helpers/jasmine-sinon.js +1 -1
  396. package/test/helpers/jquery-events.js +1 -1
  397. package/test/helpers/sinon.js +3 -3
  398. package/test/meteor/fonts.js +1 -1
  399. package/test/modules/accordion.spec.js +1 -1
  400. package/test/modules/checkbox.spec.js +1 -1
  401. package/test/modules/dropdown.spec.js +1 -1
  402. package/test/modules/modal.spec.js +1 -1
  403. package/test/modules/module.spec.js +1 -1
  404. package/test/modules/popup.spec.js +1 -1
  405. package/test/modules/search.spec.js +1 -1
  406. package/test/modules/shape.spec.js +1 -1
  407. package/test/modules/sidebar.spec.js +1 -1
  408. package/test/modules/tab.spec.js +1 -1
  409. package/test/modules/transition.spec.js +1 -1
  410. package/test/modules/video.spec.js +1 -1
@@ -70,6 +70,7 @@ $.fn.slider = function(parameters) {
70
70
 
71
71
  $module = $(this),
72
72
  $currThumb,
73
+ touchIdentifier,
73
74
  $thumb,
74
75
  $secondThumb,
75
76
  $track,
@@ -86,7 +87,6 @@ $.fn.slider = function(parameters) {
86
87
  secondPos,
87
88
  offset,
88
89
  precision,
89
- isTouch,
90
90
  gapRatio = 1,
91
91
  previousValue,
92
92
 
@@ -104,7 +104,6 @@ $.fn.slider = function(parameters) {
104
104
  currentRange += 1;
105
105
  documentEventID = currentRange;
106
106
 
107
- isTouch = module.setup.testOutTouch();
108
107
  module.setup.layout();
109
108
  module.setup.labels();
110
109
 
@@ -175,14 +174,6 @@ $.fn.slider = function(parameters) {
175
174
  }
176
175
  }
177
176
  },
178
- testOutTouch: function() {
179
- try {
180
- document.createEvent('TouchEvent');
181
- return true;
182
- } catch (e) {
183
- return false;
184
- }
185
- },
186
177
  customLabel: function() {
187
178
  var
188
179
  $children = $labels.find('.label'),
@@ -236,9 +227,6 @@ $.fn.slider = function(parameters) {
236
227
  module.bind.globalKeyboardEvents();
237
228
  module.bind.keyboardEvents();
238
229
  module.bind.mouseEvents();
239
- if(module.is.touch()) {
240
- module.bind.touchEvents();
241
- }
242
230
  if (settings.autoAdjustLabels) {
243
231
  module.bind.windowEvents();
244
232
  }
@@ -251,7 +239,7 @@ $.fn.slider = function(parameters) {
251
239
  $(document).on('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
252
240
  },
253
241
  mouseEvents: function() {
254
- module.verbose('Binding mouse events');
242
+ module.verbose('Binding mouse and touch events');
255
243
  $module.find('.track, .thumb, .inner').on('mousedown' + eventNamespace, function(event) {
256
244
  event.stopImmediatePropagation();
257
245
  event.preventDefault();
@@ -264,27 +252,20 @@ $.fn.slider = function(parameters) {
264
252
  $module.on('mouseleave' + eventNamespace, function(event) {
265
253
  isHover = false;
266
254
  });
267
- },
268
- touchEvents: function() {
269
- module.verbose('Binding touch events');
270
- $module.find('.track, .thumb, .inner').on('touchstart' + eventNamespace, function(event) {
271
- event.stopImmediatePropagation();
272
- event.preventDefault();
273
- module.event.down(event);
274
- });
275
- $module.on('touchstart' + eventNamespace, module.event.down);
255
+ // All touch events are invoked on the element where the touch *started*. Thus, we can bind them all
256
+ // on the thumb(s) and don't need to worry about interference with other components, i.e. no dynamic binding
257
+ // and unbinding required.
258
+ $module.find('.thumb')
259
+ .on('touchstart' + eventNamespace, module.event.touchDown)
260
+ .on('touchmove' + eventNamespace, module.event.move)
261
+ .on('touchend' + eventNamespace, module.event.up)
262
+ .on('touchcancel' + eventNamespace, module.event.touchCancel);
276
263
  },
277
264
  slidingEvents: function() {
278
265
  // these don't need the identifier because we only ever want one of them to be registered with document
279
266
  module.verbose('Binding page wide events while handle is being draged');
280
- if(module.is.touch()) {
281
- $(document).on('touchmove' + eventNamespace, module.event.move);
282
- $(document).on('touchend' + eventNamespace, module.event.up);
283
- }
284
- else {
285
- $(document).on('mousemove' + eventNamespace, module.event.move);
286
- $(document).on('mouseup' + eventNamespace, module.event.up);
287
- }
267
+ $(document).on('mousemove' + eventNamespace, module.event.move);
268
+ $(document).on('mouseup' + eventNamespace, module.event.up);
288
269
  },
289
270
  windowEvents: function() {
290
271
  $window.on('resize' + eventNamespace, module.event.resize);
@@ -294,24 +275,22 @@ $.fn.slider = function(parameters) {
294
275
  unbind: {
295
276
  events: function() {
296
277
  $module.find('.track, .thumb, .inner').off('mousedown' + eventNamespace);
297
- $module.find('.track, .thumb, .inner').off('touchstart' + eventNamespace);
298
278
  $module.off('mousedown' + eventNamespace);
299
279
  $module.off('mouseenter' + eventNamespace);
300
280
  $module.off('mouseleave' + eventNamespace);
301
- $module.off('touchstart' + eventNamespace);
281
+ $module.find('.thumb')
282
+ .off('touchstart' + eventNamespace)
283
+ .off('touchmove' + eventNamespace)
284
+ .off('touchend' + eventNamespace)
285
+ .off('touchcancel' + eventNamespace);
302
286
  $module.off('keydown' + eventNamespace);
303
287
  $module.off('focusout' + eventNamespace);
304
288
  $(document).off('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
305
289
  $window.off('resize' + eventNamespace);
306
290
  },
307
291
  slidingEvents: function() {
308
- if(module.is.touch()) {
309
- $(document).off('touchmove' + eventNamespace);
310
- $(document).off('touchend' + eventNamespace);
311
- } else {
312
- $(document).off('mousemove' + eventNamespace);
313
- $(document).off('mouseup' + eventNamespace);
314
- }
292
+ $(document).off('mousemove' + eventNamespace);
293
+ $(document).off('mouseup' + eventNamespace);
315
294
  },
316
295
  },
317
296
 
@@ -341,10 +320,31 @@ $.fn.slider = function(parameters) {
341
320
  module.bind.slidingEvents();
342
321
  }
343
322
  },
323
+ touchDown: function(event) {
324
+ event.preventDefault(); // disable mouse emulation and touch-scrolling
325
+ event.stopImmediatePropagation();
326
+ if(touchIdentifier !== undefined) {
327
+ // ignore multiple touches on the same slider --
328
+ // we cannot handle changing both thumbs at once due to shared state
329
+ return;
330
+ }
331
+ $currThumb = $(event.target);
332
+ var touchEvent = event.touches ? event : event.originalEvent;
333
+ touchIdentifier = touchEvent.targetTouches[0].identifier;
334
+ if(previousValue === undefined) {
335
+ previousValue = module.get.currentThumbValue();
336
+ }
337
+ },
344
338
  move: function(event) {
345
- event.preventDefault();
339
+ if(event.type == 'mousemove') {
340
+ event.preventDefault(); // prevent text selection etc.
341
+ }
342
+ if(module.is.disabled()) {
343
+ // touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
344
+ return;
345
+ }
346
346
  var value = module.determine.valueFromEvent(event);
347
- if($currThumb === undefined) {
347
+ if(event.type == 'mousemove' && $currThumb === undefined) {
348
348
  var
349
349
  eventPos = module.determine.eventPos(event),
350
350
  newPos = module.determine.pos(eventPos)
@@ -381,13 +381,26 @@ $.fn.slider = function(parameters) {
381
381
  },
382
382
  up: function(event) {
383
383
  event.preventDefault();
384
+ if(module.is.disabled()) {
385
+ // touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
386
+ return;
387
+ }
384
388
  var value = module.determine.valueFromEvent(event);
385
389
  module.set.value(value);
386
390
  module.unbind.slidingEvents();
391
+ touchIdentifier = undefined;
387
392
  if (previousValue !== undefined) {
388
393
  previousValue = undefined;
389
394
  }
390
395
  },
396
+ touchCancel: function(event) {
397
+ event.preventDefault();
398
+ touchIdentifier = undefined;
399
+ if (previousValue !== undefined) {
400
+ module.update.value(previousValue);
401
+ previousValue = undefined;
402
+ }
403
+ },
391
404
  keydown: function(event, first) {
392
405
  if(settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
393
406
  $currThumb = undefined;
@@ -500,9 +513,6 @@ $.fn.slider = function(parameters) {
500
513
  },
501
514
  smooth: function() {
502
515
  return settings.smooth || $module.hasClass(settings.className.smooth);
503
- },
504
- touch: function() {
505
- return isTouch;
506
516
  }
507
517
  },
508
518
 
@@ -766,12 +776,19 @@ $.fn.slider = function(parameters) {
766
776
  return value;
767
777
  },
768
778
  eventPos: function(event) {
769
- if(module.is.touch()) {
779
+ if(event.type === "touchmove" || event.type === "touchend") {
780
+ var
781
+ touchEvent = event.touches ? event : event.originalEvent,
782
+ touch = touchEvent.changedTouches[0]; // fall back to first touch if correct touch not found
783
+ for(var i=0; i < touchEvent.touches.length; i++) {
784
+ if(touchEvent.touches[i].identifier === touchIdentifier) {
785
+ touch = touchEvent.touches[i];
786
+ break;
787
+ }
788
+ }
770
789
  var
771
- touchEvent = event.changedTouches ? event : event.originalEvent,
772
- touches = touchEvent.changedTouches[0] ? touchEvent.changedTouches : touchEvent.touches,
773
- touchY = touches[0].pageY,
774
- touchX = touches[0].pageX
790
+ touchY = touch.pageY,
791
+ touchX = touch.pageX
775
792
  ;
776
793
  return module.is.vertical() ? touchY : touchX;
777
794
  }
@@ -206,7 +206,7 @@
206
206
  transform: translate(-50%, 100%);
207
207
  }
208
208
  & when (@variationSliderTicked) {
209
- .ui.labeled.ticked.slider > .labels .label:after {
209
+ .ui.labeled.ticked.slider > .labels .label::after {
210
210
  content: ' ';
211
211
  height: @labelHeight;
212
212
  width: @labelWidth;
@@ -215,11 +215,11 @@
215
215
  top: 100%;
216
216
  left: 50%;
217
217
  }
218
- .ui.bottom.aligned.labeled.ticked.slider > .labels .label:after {
218
+ .ui.bottom.aligned.labeled.ticked.slider > .labels .label::after {
219
219
  top: auto;
220
220
  bottom: 100%;
221
221
  }
222
- .ui.labeled.ticked.slider > .labels .halftick.label:after {
222
+ .ui.labeled.ticked.slider > .labels .halftick.label::after {
223
223
  height: (@labelHeight / 2);
224
224
  }
225
225
  }
@@ -240,13 +240,13 @@
240
240
  transform: translate(-100%, -50%);
241
241
  }
242
242
 
243
- .ui.labeled.vertical.slider > .labels .label:after {
243
+ .ui.labeled.vertical.slider > .labels .label::after {
244
244
  width: @labelHeight;
245
245
  height: @labelWidth;
246
246
  left: 100%;
247
247
  top: 50%;
248
248
  }
249
- .ui.labeled.vertical.slider > .labels .halftick.label:after {
249
+ .ui.labeled.vertical.slider > .labels .halftick.label::after {
250
250
  width: (@labelHeight / 2);
251
251
  height: @labelWidth;
252
252
  }
@@ -291,46 +291,47 @@
291
291
  /*--------------
292
292
  Colors
293
293
  ---------------*/
294
+ & when not (@variationSliderColors = false) {
295
+ each(@variationSliderColors, {
296
+ @color: @value;
297
+ @c: @colors[@@color][color];
298
+ @l: @colors[@@color][light];
299
+ @h: @colors[@@color][hover];
300
+ @lh: @colors[@@color][lightHover];
301
+
302
+ /* Standard */
303
+ .ui.@{color}.slider .inner .track-fill {
304
+ background-color: @c;
305
+ }
306
+ & when (@variationSliderInverted) {
307
+ .ui.@{color}.inverted.slider .inner .track-fill {
308
+ background-color: @l;
309
+ }
310
+ }
294
311
 
295
- each(@colors, {
296
- @color: replace(@key, '@', '');
297
- @c: @colors[@@color][color];
298
- @l: @colors[@@color][light];
299
- @h: @colors[@@color][hover];
300
- @lh: @colors[@@color][lightHover];
301
-
302
- /* Standard */
303
- .ui.@{color}.slider .inner .track-fill {
304
- background-color: @c;
305
- }
306
- & when (@variationSliderInverted) {
307
- .ui.@{color}.inverted.slider .inner .track-fill {
308
- background-color: @l;
309
- }
310
- }
311
-
312
- & when (@variationSliderBasic) {
313
- /* Basic */
314
- .ui.@{color}.slider.basic .inner .thumb {
315
- background-color: @c;
316
- }
317
- .ui.@{color}.slider.basic .inner .thumb:hover,
318
- .ui.@{color}.slider.basic:focus .inner .thumb {
319
- background-color: @h;
320
- }
321
- & when (@variationSliderInverted) {
322
- /* Basic Inverted */
323
- .ui.@{color}.inverted.slider.basic .inner .thumb {
324
- background-color: @l;
325
- }
326
- .ui.@{color}.inverted.slider.basic .inner .thumb:hover,
327
- .ui.@{color}.inverted.slider.basic:focus .inner .thumb {
328
- background-color: @lh;
329
- }
330
- }
331
- }
312
+ & when (@variationSliderBasic) {
313
+ /* Basic */
314
+ .ui.@{color}.slider.basic .inner .thumb {
315
+ background-color: @c;
316
+ }
317
+ .ui.@{color}.slider.basic .inner .thumb:hover,
318
+ .ui.@{color}.slider.basic:focus .inner .thumb {
319
+ background-color: @h;
320
+ }
321
+ & when (@variationSliderInverted) {
322
+ /* Basic Inverted */
323
+ .ui.@{color}.inverted.slider.basic .inner .thumb {
324
+ background-color: @l;
325
+ }
326
+ .ui.@{color}.inverted.slider.basic .inner .thumb:hover,
327
+ .ui.@{color}.inverted.slider.basic:focus .inner .thumb {
328
+ background-color: @lh;
329
+ }
330
+ }
331
+ }
332
332
 
333
- })
333
+ })
334
+ }
334
335
 
335
336
  & when (@variationSliderBasic) {
336
337
  /*--------------
@@ -385,10 +386,10 @@ each(@colors, {
385
386
  }
386
387
  & when (@variationSliderLabeled) {
387
388
  .ui.@{value}.labeled.slider:not(.vertical) > .labels,
388
- .ui.@{value}.labeled.slider:not(.vertical) > .labels .label:after {
389
+ .ui.@{value}.labeled.slider:not(.vertical) > .labels .label::after {
389
390
  height: @@lh;
390
391
  }
391
- .ui.@{value}.labeled.slider:not(.vertical) > .labels .halftick.label:after {
392
+ .ui.@{value}.labeled.slider:not(.vertical) > .labels .halftick.label::after {
392
393
  height: (@@lh / 2);
393
394
  }
394
395
  }
@@ -404,10 +405,10 @@ each(@colors, {
404
405
  }
405
406
  & when (@variationSliderLabeled) {
406
407
  .ui.@{value}.labeled.vertical.slider> .labels,
407
- .ui.@{value}.labeled.vertical.slider> .labels .label:after {
408
+ .ui.@{value}.labeled.vertical.slider> .labels .label::after {
408
409
  width: @@lh;
409
410
  }
410
- .ui.@{value}.labeled.vertical.slider> .labels .halftick.label:after {
411
+ .ui.@{value}.labeled.vertical.slider> .labels .halftick.label::after {
411
412
  width: (@@lh / 2);
412
413
  }
413
414
  }
@@ -53,7 +53,7 @@ $.fn.sticky = function(parameters) {
53
53
 
54
54
  $module = $(this),
55
55
  $window = $(window),
56
- $scroll = $(settings.scrollContext),
56
+ $scroll = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
57
57
  $container,
58
58
  $context,
59
59
 
@@ -139,7 +139,7 @@ $.fn.sticky = function(parameters) {
139
139
 
140
140
  determineContainer: function() {
141
141
  if(settings.container) {
142
- $container = $(settings.container);
142
+ $container = [window,document].indexOf(settings.container) < 0 ? $(document).find(settings.container) : $(settings.container);
143
143
  }
144
144
  else {
145
145
  $container = $module.offsetParent();
@@ -148,7 +148,7 @@ $.fn.sticky = function(parameters) {
148
148
 
149
149
  determineContext: function() {
150
150
  if(settings.context) {
151
- $context = $(settings.context);
151
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
152
152
  }
153
153
  else {
154
154
  $context = $container;
@@ -393,9 +393,9 @@ $.fn.sticky = function(parameters) {
393
393
  },
394
394
  containerSize: function() {
395
395
  var
396
- tagName = $container.get(0).tagName
396
+ tagName = $container[0].tagName
397
397
  ;
398
- if(tagName === 'HTML' || tagName == 'body') {
398
+ if(tagName === 'HTML' || tagName === 'body') {
399
399
  // this can trigger for too many reasons
400
400
  //module.error(error.container, tagName, $module);
401
401
  module.determineContainer();
@@ -66,7 +66,9 @@
66
66
  .ui.native.sticky {
67
67
  position: -webkit-sticky;
68
68
  position: -moz-sticky;
69
- position: -ms-sticky;
69
+ & when (@supportIE) {
70
+ position: -ms-sticky;
71
+ }
70
72
  position: -o-sticky;
71
73
  position: sticky;
72
74
  }
@@ -100,10 +100,18 @@ $.fn.tab = function(parameters) {
100
100
  initializedHistory = true;
101
101
  }
102
102
 
103
- if(settings.autoTabActivation && instance === undefined && module.determine.activeTab() == null) {
104
- module.debug('No active tab detected, setting first tab active', module.get.initialPath());
105
- module.changeTab(settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation);
106
- };
103
+ var activeTab = module.determine.activeTab();
104
+ if(settings.autoTabActivation && instance === undefined && activeTab == null) {
105
+ activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
106
+ module.debug('No active tab detected, setting tab active', activeTab);
107
+ module.changeTab(activeTab);
108
+ }
109
+ if(activeTab != null && settings.history) {
110
+ var autoUpdate = $.address.autoUpdate();
111
+ $.address.autoUpdate(false);
112
+ $.address.value(activeTab);
113
+ $.address.autoUpdate(autoUpdate);
114
+ }
107
115
 
108
116
  module.instantiate();
109
117
  },
@@ -154,7 +162,7 @@ $.fn.tab = function(parameters) {
154
162
  module.verbose('Determined parent element for creating context', $context);
155
163
  }
156
164
  else if(settings.context) {
157
- $context = $(settings.context);
165
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
158
166
  module.verbose('Using selector for tab context', settings.context, $context);
159
167
  }
160
168
  else {
@@ -203,6 +211,7 @@ $.fn.tab = function(parameters) {
203
211
  .history(true)
204
212
  .state(settings.path)
205
213
  ;
214
+ $(window).trigger('popstate');
206
215
  }
207
216
  else {
208
217
  module.error(error.path);
@@ -370,6 +379,10 @@ $.fn.tab = function(parameters) {
370
379
  module.verbose('Tab parameters found', nextPathArray);
371
380
  }
372
381
  }
382
+ if (settings.onBeforeChange.call(element, currentPath) === false) {
383
+ module.debug('onBeforeChange returned false, cancelling tab change', $tab);
384
+ return false;
385
+ }
373
386
  if(isLastTab && remoteContent) {
374
387
  if(!shouldIgnoreLoad) {
375
388
  module.activate.navigation(currentPath);
@@ -406,6 +419,10 @@ $.fn.tab = function(parameters) {
406
419
  // if anchor exists use parent tab
407
420
  if($anchor && $anchor.length > 0 && currentPath) {
408
421
  module.debug('Anchor link used, opening parent tab', $tab, $anchor);
422
+ if (settings.onBeforeChange.call(element, currentPath) === false) {
423
+ module.debug('onBeforeChange returned false, cancelling tab change', $tab);
424
+ return false;
425
+ }
409
426
  if( !$tab.hasClass(className.active) ) {
410
427
  setTimeout(function() {
411
428
  module.scrollTo($anchor);
@@ -959,6 +976,7 @@ $.fn.tab.settings = {
959
976
  onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
960
977
  onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
961
978
  onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
979
+ onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
962
980
 
963
981
  templates : {
964
982
  determineTitle: function(tabArray) {} // returns page title for path
@@ -55,8 +55,8 @@
55
55
  left: @loadingContentOffset !important;
56
56
  }
57
57
 
58
- .ui.tab.loading:before,
59
- .ui.tab.loading.segment:before {
58
+ .ui.tab.loading::before,
59
+ .ui.tab.loading.segment::before {
60
60
  position: absolute;
61
61
  content: '';
62
62
  top: @loaderDistanceFromTop;
@@ -69,8 +69,8 @@
69
69
  border-radius: @circularRadius;
70
70
  border: @loaderLineWidth solid @loaderFillColor;
71
71
  }
72
- .ui.tab.loading:after,
73
- .ui.tab.loading.segment:after {
72
+ .ui.tab.loading::after,
73
+ .ui.tab.loading.segment::after {
74
74
  position: absolute;
75
75
  content: '';
76
76
  top: @loaderDistanceFromTop;