fomantic-ui 2.9.0-beta.29 → 2.9.0-beta.292

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 (408) hide show
  1. package/.all-contributorsrc +242 -3
  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 +81 -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 +6 -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 +85 -68
  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 +17 -11
  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 +11 -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 +90 -50
  44. package/dist/components/dropdown.js +134 -110
  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 +1 -1
  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 +14 -2
  84. package/dist/components/modal.js +128 -50
  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 +11 -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 +1 -1
  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 +2 -2
  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 +7 -5
  122. package/dist/components/sidebar.js +14 -12
  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 +4 -4
  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 +63 -31
  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 +21 -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 +2 -2
  160. package/dist/components/visibility.min.js +3 -3
  161. package/dist/semantic.css +20165 -13374
  162. package/dist/semantic.js +734 -455
  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 +1 -1
  211. package/src/definitions/collections/form.less +229 -165
  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 +5 -2
  234. package/src/definitions/modules/accordion.less +371 -219
  235. package/src/definitions/modules/calendar.js +84 -67
  236. package/src/definitions/modules/calendar.less +20 -0
  237. package/src/definitions/modules/checkbox.js +16 -10
  238. package/src/definitions/modules/checkbox.less +83 -227
  239. package/src/definitions/modules/dimmer.js +10 -4
  240. package/src/definitions/modules/dimmer.less +22 -8
  241. package/src/definitions/modules/dropdown.js +133 -109
  242. package/src/definitions/modules/dropdown.less +191 -136
  243. package/src/definitions/modules/embed.less +4 -4
  244. package/src/definitions/modules/modal.js +127 -49
  245. package/src/definitions/modules/modal.less +12 -0
  246. package/src/definitions/modules/nag.js +1 -1
  247. package/src/definitions/modules/nag.less +20 -19
  248. package/src/definitions/modules/popup.js +10 -10
  249. package/src/definitions/modules/popup.less +86 -90
  250. package/src/definitions/modules/progress.js +3 -0
  251. package/src/definitions/modules/progress.less +19 -18
  252. package/src/definitions/modules/rating.less +35 -34
  253. package/src/definitions/modules/search.js +1 -1
  254. package/src/definitions/modules/search.less +35 -19
  255. package/src/definitions/modules/shape.js +2 -2
  256. package/src/definitions/modules/sidebar.js +13 -11
  257. package/src/definitions/modules/sidebar.less +36 -22
  258. package/src/definitions/modules/slider.js +67 -50
  259. package/src/definitions/modules/slider.less +48 -47
  260. package/src/definitions/modules/sticky.js +3 -3
  261. package/src/definitions/modules/sticky.less +3 -1
  262. package/src/definitions/modules/tab.js +23 -5
  263. package/src/definitions/modules/tab.less +4 -4
  264. package/src/definitions/modules/toast.js +62 -30
  265. package/src/definitions/modules/toast.less +51 -16
  266. package/src/definitions/modules/transition.js +20 -15
  267. package/src/definitions/views/ad.less +3 -3
  268. package/src/definitions/views/card.less +522 -375
  269. package/src/definitions/views/comment.less +93 -82
  270. package/src/definitions/views/feed.less +164 -144
  271. package/src/definitions/views/item.less +251 -198
  272. package/src/definitions/views/statistic.less +91 -89
  273. package/src/theme.less +13 -2
  274. package/src/themes/amazon/globals/site.variables +1 -0
  275. package/src/themes/basic/elements/icon.overrides +149 -149
  276. package/src/themes/basic/elements/step.overrides +2 -2
  277. package/src/themes/bookish/elements/header.overrides +1 -1
  278. package/src/themes/chubby/elements/button.overrides +1 -1
  279. package/src/themes/chubby/elements/header.overrides +1 -1
  280. package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  281. package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  282. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  283. package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  284. package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  285. package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  286. package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  287. package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  288. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  289. package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  290. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  291. package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  292. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  293. package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  294. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  295. package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  296. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  297. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  298. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  299. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  300. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  301. package/src/themes/default/assets/fonts/icons.eot +0 -0
  302. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  303. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  304. package/src/themes/default/assets/fonts/icons.woff +0 -0
  305. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  306. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  307. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  308. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  309. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  310. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  311. package/src/themes/default/collections/form.variables +4 -0
  312. package/src/themes/default/collections/menu.variables +6 -0
  313. package/src/themes/default/collections/table.variables +52 -0
  314. package/src/themes/default/elements/button.variables +7 -1
  315. package/src/themes/default/elements/container.variables +12 -0
  316. package/src/themes/default/elements/divider.overrides +7 -7
  317. package/src/themes/default/elements/emoji.overrides +0 -3090
  318. package/src/themes/default/elements/emoji.variables +3575 -1
  319. package/src/themes/default/elements/flag.overrides +0 -991
  320. package/src/themes/default/elements/flag.variables +1609 -5
  321. package/src/themes/default/elements/icon.overrides +1975 -1949
  322. package/src/themes/default/elements/icon.variables +1 -0
  323. package/src/themes/default/elements/input.variables +15 -0
  324. package/src/themes/default/elements/segment.variables +8 -0
  325. package/src/themes/default/elements/step.overrides +3 -3
  326. package/src/themes/default/globals/site.variables +109 -8
  327. package/src/themes/default/globals/variation.variables +140 -6
  328. package/src/themes/default/modules/accordion.overrides +6 -5
  329. package/src/themes/default/modules/accordion.variables +49 -2
  330. package/src/themes/default/modules/calendar.variables +3 -0
  331. package/src/themes/default/modules/checkbox.overrides +9 -9
  332. package/src/themes/default/modules/checkbox.variables +5 -5
  333. package/src/themes/default/modules/dimmer.variables +1 -1
  334. package/src/themes/default/modules/dropdown.overrides +5 -5
  335. package/src/themes/default/modules/dropdown.variables +4 -10
  336. package/src/themes/default/modules/modal.variables +13 -0
  337. package/src/themes/default/modules/popup.variables +0 -2
  338. package/src/themes/default/modules/toast.variables +3 -0
  339. package/src/themes/default/views/card.variables +8 -0
  340. package/src/themes/{default → famfamfam}/assets/images/flags.png +0 -0
  341. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  342. package/src/themes/famfamfam/elements/flag.variables +20 -0
  343. package/src/themes/github/elements/icon.overrides +206 -206
  344. package/src/themes/github/elements/step.overrides +5 -5
  345. package/src/themes/github/globals/site.variables +1 -0
  346. package/src/themes/github/modules/dropdown.overrides +6 -6
  347. package/src/themes/instagram/views/card.overrides +1 -1
  348. package/src/themes/joypixels/elements/emoji.overrides +0 -3089
  349. package/src/themes/joypixels/elements/emoji.variables +3574 -5
  350. package/src/themes/material/collections/menu.overrides +1 -1
  351. package/src/themes/material/elements/button.overrides +1 -1
  352. package/src/themes/material/elements/header.overrides +1 -1
  353. package/src/themes/material/elements/icon.overrides +932 -932
  354. package/src/themes/material/globals/site.variables +0 -1
  355. package/src/themes/material/modules/dropdown.overrides +1 -1
  356. package/src/themes/material/modules/modal.overrides +1 -1
  357. package/src/themes/pulsar/elements/loader.overrides +2 -2
  358. package/src/themes/resetcss/globals/reset.overrides +3 -3
  359. package/src/themes/rtl/globals/site.overrides +1 -1
  360. package/src/themes/striped/modules/progress.overrides +1 -1
  361. package/src/themes/systemfont/globals/reset.overrides +8 -0
  362. package/src/themes/systemfont/globals/site.variables +10 -0
  363. package/src/themes/twitter/elements/emoji.overrides +0 -3091
  364. package/src/themes/twitter/elements/emoji.variables +3570 -6
  365. package/tasks/admin/distributions/create.js +1 -1
  366. package/tasks/admin/publish.js +1 -1
  367. package/tasks/admin/release.js +1 -1
  368. package/tasks/build/assets.js +1 -1
  369. package/tasks/build/css.js +9 -4
  370. package/tasks/build/javascript.js +3 -3
  371. package/tasks/check-install.js +1 -1
  372. package/tasks/clean.js +1 -1
  373. package/tasks/collections/README.md +1 -1
  374. package/tasks/collections/admin.js +1 -1
  375. package/tasks/config/admin/oauth.example.js +1 -1
  376. package/tasks/config/admin/templates/composer.json +1 -1
  377. package/tasks/config/project/install.js +15 -13
  378. package/tasks/install.js +1 -0
  379. package/tasks/rtl/watch.js +1 -1
  380. package/tasks/version.js +1 -1
  381. package/test/fixtures/accordion.html +1 -1
  382. package/test/fixtures/checkbox.html +1 -1
  383. package/test/fixtures/dropdown.html +1 -1
  384. package/test/fixtures/modal.html +1 -1
  385. package/test/fixtures/popup.html +1 -1
  386. package/test/fixtures/rating.html +1 -1
  387. package/test/fixtures/shape.html +1 -1
  388. package/test/fixtures/sidebar.html +1 -1
  389. package/test/fixtures/tab.html +1 -1
  390. package/test/fixtures/transition.html +1 -1
  391. package/test/fixtures/video.html +1 -1
  392. package/test/helpers/jasmine-jquery.js +2 -2
  393. package/test/helpers/jasmine-sinon.js +1 -1
  394. package/test/helpers/jquery-events.js +1 -1
  395. package/test/helpers/sinon.js +3 -3
  396. package/test/meteor/fonts.js +1 -1
  397. package/test/modules/accordion.spec.js +1 -1
  398. package/test/modules/checkbox.spec.js +1 -1
  399. package/test/modules/dropdown.spec.js +1 -1
  400. package/test/modules/modal.spec.js +1 -1
  401. package/test/modules/module.spec.js +1 -1
  402. package/test/modules/popup.spec.js +1 -1
  403. package/test/modules/search.spec.js +1 -1
  404. package/test/modules/shape.spec.js +1 -1
  405. package/test/modules/sidebar.spec.js +1 -1
  406. package/test/modules/tab.spec.js +1 -1
  407. package/test/modules/transition.spec.js +1 -1
  408. package/test/modules/video.spec.js +1 -1
@@ -65,8 +65,9 @@ $.fn.modal = function(parameters) {
65
65
  moduleNamespace = 'module-' + namespace,
66
66
 
67
67
  $module = $(this),
68
- $context = $(settings.context),
69
- $close = $module.find(selector.close),
68
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
69
+ $closeIcon = $module.find(selector.closeIcon),
70
+ $inputs,
70
71
 
71
72
  $allModals,
72
73
  $otherModals,
@@ -92,6 +93,7 @@ $.fn.modal = function(parameters) {
92
93
  module = {
93
94
 
94
95
  initialize: function() {
96
+ module.create.id();
95
97
  if(!$module.hasClass('modal')) {
96
98
  module.create.modal();
97
99
  if(!$.isFunction(settings.onHidden)) {
@@ -116,15 +118,17 @@ $.fn.modal = function(parameters) {
116
118
  $actions.empty();
117
119
  }
118
120
  settings.actions.forEach(function (el) {
119
- var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
121
+ var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
120
122
  text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
121
123
  cls = module.helpers.deQuote(el[fields.class] || ''),
122
124
  click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
123
125
  $actions.append($('<button/>', {
124
126
  html: icon + text,
127
+ 'aria-label': (el[fields.text] || el[fields.icon] || '').replace(/<[^>]+(>|$)/g,''),
125
128
  class: className.button + ' ' + cls,
126
129
  click: function () {
127
- if (click.call(element, $module) === false) {
130
+ var button = $(this);
131
+ if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
128
132
  return;
129
133
  }
130
134
  module.hide();
@@ -135,7 +139,6 @@ $.fn.modal = function(parameters) {
135
139
  module.cache = {};
136
140
  module.verbose('Initializing dimmer', $context);
137
141
 
138
- module.create.id();
139
142
  module.create.dimmer();
140
143
 
141
144
  if ( settings.allowMultiple ) {
@@ -145,11 +148,9 @@ $.fn.modal = function(parameters) {
145
148
  $module.addClass('top aligned');
146
149
  }
147
150
  module.refreshModals();
148
-
151
+ module.refreshInputs();
149
152
  module.bind.events();
150
- if(settings.observeChanges) {
151
- module.observeChanges();
152
- }
153
+ module.observeChanges();
153
154
  module.instantiate();
154
155
  if(settings.autoShow){
155
156
  module.show();
@@ -166,16 +167,20 @@ $.fn.modal = function(parameters) {
166
167
 
167
168
  create: {
168
169
  modal: function() {
169
- $module = $('<div/>', {class: className.modal});
170
+ $module = $('<div/>', {class: className.modal, role: 'dialog', 'aria-modal': true});
170
171
  if (settings.closeIcon) {
171
- $close = $('<i/>', {class: className.close})
172
- $module.append($close);
172
+ $closeIcon = $('<i/>', {class: className.close, role: 'button', tabindex: 0, 'aria-label': settings.text.close})
173
+ $module.append($closeIcon);
173
174
  }
174
175
  if (settings.title !== '') {
175
- $('<div/>', {class: className.title}).appendTo($module);
176
+ var titleId = '_' + module.get.id() + 'title';
177
+ $module.attr('aria-labelledby', titleId);
178
+ $('<div/>', {class: className.title, id: titleId}).appendTo($module);
176
179
  }
177
180
  if (settings.content !== '') {
178
- $('<div/>', {class: className.content}).appendTo($module);
181
+ var descId = '_' + module.get.id() + 'desc';
182
+ $module.attr('aria-describedby', descId);
183
+ $('<div/>', {class: className.content, id: descId}).appendTo($module);
179
184
  }
180
185
  if (module.has.configActions()) {
181
186
  $('<div/>', {class: className.actions}).appendTo($module);
@@ -206,13 +211,13 @@ $.fn.modal = function(parameters) {
206
211
  $dimmer = $dimmable.dimmer('get dimmer');
207
212
  },
208
213
  id: function() {
209
- id = (Math.random().toString(16) + '000000000').substr(2, 8);
214
+ id = (Math.random().toString(16) + '000000000').slice(2, 10);
210
215
  elementEventNamespace = '.' + id;
211
216
  module.verbose('Creating unique id for element', id);
212
217
  },
213
218
  innerDimmer: function() {
214
- if ( $module.find(selector.dimmer).length == 0 ) {
215
- $module.prepend('<div class="ui inverted dimmer"></div>');
219
+ if ( $module.find(selector.dimmer).length === 0 ) {
220
+ $('<div/>', {class: className.innerDimmer}).prependTo($module);
216
221
  }
217
222
  }
218
223
  },
@@ -228,15 +233,21 @@ $.fn.modal = function(parameters) {
228
233
  ;
229
234
  $window.off(elementEventNamespace);
230
235
  $dimmer.off(elementEventNamespace);
231
- $close.off(eventNamespace);
236
+ $closeIcon.off(elementEventNamespace);
237
+ if($inputs) {
238
+ $inputs.off(elementEventNamespace);
239
+ }
232
240
  $context.dimmer('destroy');
233
241
  },
234
242
 
235
243
  observeChanges: function() {
236
244
  if('MutationObserver' in window) {
237
245
  observer = new MutationObserver(function(mutations) {
238
- module.debug('DOM tree modified, refreshing');
239
- module.refresh();
246
+ if(settings.observeChanges) {
247
+ module.debug('DOM tree modified, refreshing');
248
+ module.refresh();
249
+ }
250
+ module.refreshInputs();
240
251
  });
241
252
  observer.observe(element, {
242
253
  childList : true,
@@ -261,6 +272,23 @@ $.fn.modal = function(parameters) {
261
272
  $allModals = $otherModals.add($module);
262
273
  },
263
274
 
275
+ refreshInputs: function(){
276
+ if($inputs){
277
+ $inputs
278
+ .off('keydown' + elementEventNamespace)
279
+ ;
280
+ }
281
+ $inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
282
+ return $(this).closest('.disabled').length === 0;
283
+ });
284
+ $inputs.first()
285
+ .on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
286
+ ;
287
+ $inputs.last()
288
+ .on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
289
+ ;
290
+ },
291
+
264
292
  attachEvents: function(selector, event) {
265
293
  var
266
294
  $toggle = $(selector)
@@ -289,6 +317,9 @@ $.fn.modal = function(parameters) {
289
317
  .on('click' + eventNamespace, selector.approve, module.event.approve)
290
318
  .on('click' + eventNamespace, selector.deny, module.event.deny)
291
319
  ;
320
+ $closeIcon
321
+ .on('keyup' + elementEventNamespace, module.event.closeKeyUp)
322
+ ;
292
323
  $window
293
324
  .on('resize' + elementEventNamespace, module.event.resize)
294
325
  ;
@@ -307,7 +338,7 @@ $.fn.modal = function(parameters) {
307
338
 
308
339
  get: {
309
340
  id: function() {
310
- return (Math.random().toString(16) + '000000000').substr(2, 8);
341
+ return id;
311
342
  },
312
343
  element: function() {
313
344
  return $module;
@@ -346,10 +377,38 @@ $.fn.modal = function(parameters) {
346
377
  close: function() {
347
378
  module.hide();
348
379
  },
380
+ closeKeyUp: function(event){
381
+ var
382
+ keyCode = event.which
383
+ ;
384
+ if ((keyCode === settings.keys.enter || keyCode === settings.keys.space) && $module.hasClass(className.front)) {
385
+ module.hide();
386
+ }
387
+ },
388
+ inputKeyDown: {
389
+ first: function(event) {
390
+ var
391
+ keyCode = event.which
392
+ ;
393
+ if (keyCode === settings.keys.tab && event.shiftKey) {
394
+ $inputs.last().focus();
395
+ event.preventDefault();
396
+ }
397
+ },
398
+ last: function(event) {
399
+ var
400
+ keyCode = event.which
401
+ ;
402
+ if (keyCode === settings.keys.tab && !event.shiftKey) {
403
+ $inputs.first().focus();
404
+ event.preventDefault();
405
+ }
406
+ }
407
+ },
349
408
  mousedown: function(event) {
350
409
  var
351
410
  $target = $(event.target),
352
- isRtl = module.is.rtl();
411
+ isRtl = module.is.rtl()
353
412
  ;
354
413
  initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
355
414
  if(initialMouseDownInModal) {
@@ -397,10 +456,9 @@ $.fn.modal = function(parameters) {
397
456
  },
398
457
  keyboard: function(event) {
399
458
  var
400
- keyCode = event.which,
401
- escapeKey = 27
459
+ keyCode = event.which
402
460
  ;
403
- if(keyCode == escapeKey) {
461
+ if(keyCode === settings.keys.escape) {
404
462
  if(settings.closable) {
405
463
  module.debug('Escape key pressed hiding modal');
406
464
  if ( $module.hasClass(className.front) ) {
@@ -456,6 +514,10 @@ $.fn.modal = function(parameters) {
456
514
  : function(){}
457
515
  ;
458
516
  if( module.is.animating() || !module.is.active() ) {
517
+ if(settings.onShow.call(element) === false) {
518
+ module.verbose('Show callback returned false cancelling show');
519
+ return;
520
+ }
459
521
  module.showDimmer();
460
522
  module.cacheSizes();
461
523
  module.set.bodyMargin();
@@ -485,7 +547,6 @@ $.fn.modal = function(parameters) {
485
547
  $module.detach().appendTo($dimmer);
486
548
  }
487
549
  }
488
- settings.onShow.call(element);
489
550
  if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
490
551
  module.debug('Showing modal with css animations');
491
552
  $module
@@ -528,7 +589,6 @@ $.fn.modal = function(parameters) {
528
589
  ? callback
529
590
  : function(){}
530
591
  ;
531
- module.debug('Hiding modal');
532
592
  if(settings.onHide.call(element, $(this)) === false) {
533
593
  module.verbose('Hide callback returned false cancelling hide');
534
594
  ignoreRepeatedEvents = false;
@@ -536,6 +596,7 @@ $.fn.modal = function(parameters) {
536
596
  }
537
597
 
538
598
  if( module.is.animating() || module.is.active() ) {
599
+ module.debug('Hiding modal');
539
600
  if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
540
601
  module.remove.active();
541
602
  $module
@@ -715,7 +776,7 @@ $.fn.modal = function(parameters) {
715
776
  $module
716
777
  .off('mousedown' + elementEventNamespace)
717
778
  ;
718
- }
779
+ }
719
780
  $dimmer
720
781
  .off('mousedown' + elementEventNamespace)
721
782
  ;
@@ -900,13 +961,10 @@ $.fn.modal = function(parameters) {
900
961
  set: {
901
962
  autofocus: function() {
902
963
  var
903
- $inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
904
- return $(this).closest('.disabled').length === 0;
905
- }),
906
964
  $autofocus = $inputs.filter('[autofocus]'),
907
965
  $input = ($autofocus.length > 0)
908
966
  ? $autofocus.first()
909
- : $inputs.first()
967
+ : ($inputs.length > 1 ? $inputs.filter(':not(i.close)') : $inputs).first()
910
968
  ;
911
969
  if($input.length > 0) {
912
970
  $input.focus();
@@ -988,7 +1046,7 @@ $.fn.modal = function(parameters) {
988
1046
  ? $(document).scrollTop() + settings.padding
989
1047
  : $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
990
1048
  marginLeft: -(module.cache.width / 2)
991
- })
1049
+ })
992
1050
  ;
993
1051
  } else {
994
1052
  $module
@@ -997,7 +1055,7 @@ $.fn.modal = function(parameters) {
997
1055
  ? -(module.cache.height / 2)
998
1056
  : settings.padding / 2,
999
1057
  marginLeft: -(module.cache.width / 2)
1000
- })
1058
+ })
1001
1059
  ;
1002
1060
  }
1003
1061
  module.verbose('Setting modal offset for legacy mode');
@@ -1323,11 +1381,19 @@ $.fn.modal.settings = {
1323
1381
  // called after deny selector match
1324
1382
  onDeny : function(){ return true; },
1325
1383
 
1384
+ keys : {
1385
+ space : 32,
1386
+ enter : 13,
1387
+ escape : 27,
1388
+ tab : 9,
1389
+ },
1390
+
1326
1391
  selector : {
1327
1392
  title : '> .header',
1328
1393
  content : '> .content',
1329
1394
  actions : '> .actions',
1330
1395
  close : '> .close',
1396
+ closeIcon: '> .close',
1331
1397
  approve : '.actions .positive, .actions .approve, .actions .ok',
1332
1398
  deny : '.actions .negative, .actions .deny, .actions .cancel',
1333
1399
  modal : '.ui.modal',
@@ -1359,11 +1425,13 @@ $.fn.modal.settings = {
1359
1425
  template : 'ui tiny modal',
1360
1426
  ok : 'positive',
1361
1427
  cancel : 'negative',
1362
- prompt : 'ui fluid input'
1428
+ prompt : 'ui fluid input',
1429
+ innerDimmer: 'ui inverted dimmer'
1363
1430
  },
1364
1431
  text: {
1365
1432
  ok : 'Ok',
1366
- cancel: 'Cancel'
1433
+ cancel: 'Cancel',
1434
+ close : 'Close'
1367
1435
  }
1368
1436
  };
1369
1437
 
@@ -1389,33 +1457,39 @@ $.fn.modal.settings.templates = {
1389
1457
  },
1390
1458
  alert: function () {
1391
1459
  var settings = this.get.settings(),
1392
- args = settings.templates.getArguments(arguments)
1460
+ args = settings.templates.getArguments(arguments),
1461
+ approveFn = args.handler
1393
1462
  ;
1394
1463
  return {
1395
1464
  title : args.title,
1396
1465
  content: args.content,
1466
+ onApprove: approveFn,
1397
1467
  actions: [{
1398
1468
  text : settings.text.ok,
1399
1469
  class: settings.className.ok,
1400
- click: args.handler
1470
+ click: approveFn
1401
1471
  }]
1402
1472
  }
1403
1473
  },
1404
1474
  confirm: function () {
1405
1475
  var settings = this.get.settings(),
1406
- args = settings.templates.getArguments(arguments)
1476
+ args = settings.templates.getArguments(arguments),
1477
+ approveFn = function(){args.handler(true)},
1478
+ denyFn = function(){args.handler(false)}
1407
1479
  ;
1408
1480
  return {
1409
1481
  title : args.title,
1410
1482
  content: args.content,
1483
+ onApprove: approveFn,
1484
+ onDeny: denyFn,
1411
1485
  actions: [{
1412
1486
  text : settings.text.ok,
1413
1487
  class: settings.className.ok,
1414
- click: function(){args.handler(true)}
1488
+ click: approveFn
1415
1489
  },{
1416
1490
  text: settings.text.cancel,
1417
1491
  class: settings.className.cancel,
1418
- click: function(){args.handler(false)}
1492
+ click: denyFn
1419
1493
  }]
1420
1494
  }
1421
1495
  },
@@ -1423,7 +1497,14 @@ $.fn.modal.settings.templates = {
1423
1497
  var $this = this,
1424
1498
  settings = this.get.settings(),
1425
1499
  args = settings.templates.getArguments(arguments),
1426
- input = $($.parseHTML(args.content)).filter('.ui.input')
1500
+ input = $($.parseHTML(args.content)).filter('.ui.input'),
1501
+ approveFn = function(){
1502
+ var settings = $this.get.settings(),
1503
+ inputField = $this.get.element().find(settings.selector.prompt)[0]
1504
+ ;
1505
+ args.handler($(inputField).val());
1506
+ },
1507
+ denyFn = function(){args.handler(null)}
1427
1508
  ;
1428
1509
  if (input.length === 0) {
1429
1510
  args.content += '<p><div class="'+settings.className.prompt+'"><input placeholder="'+this.helpers.deQuote(args.placeholder || '')+'" type="text" value="'+this.helpers.deQuote(args.defaultValue || '')+'"></div></p>';
@@ -1431,19 +1512,16 @@ $.fn.modal.settings.templates = {
1431
1512
  return {
1432
1513
  title : args.title,
1433
1514
  content: args.content,
1515
+ onApprove: approveFn,
1516
+ onDeny: denyFn,
1434
1517
  actions: [{
1435
1518
  text: settings.text.ok,
1436
1519
  class: settings.className.ok,
1437
- click: function(){
1438
- var settings = $this.get.settings(),
1439
- inputField = $this.get.element().find(settings.selector.prompt)[0]
1440
- ;
1441
- args.handler($(inputField).val());
1442
- }
1520
+ click: approveFn
1443
1521
  },{
1444
1522
  text: settings.text.cancel,
1445
1523
  class: settings.className.cancel,
1446
- click: function(){args.handler(null)}
1524
+ click: denyFn
1447
1525
  }]
1448
1526
  }
1449
1527
  }
@@ -80,8 +80,10 @@
80
80
  height: @closeHitbox;
81
81
  padding: @closePadding;
82
82
  }
83
+ .ui.modal > .close:focus,
83
84
  .ui.modal > .close:hover {
84
85
  opacity: 1;
86
+ outline: none;
85
87
  }
86
88
 
87
89
  /*--------------
@@ -212,6 +214,16 @@
212
214
  .ui.modal:not(.fullscreen) {
213
215
  width: @computerWidth;
214
216
  margin: @computerMargin;
217
+ & > .active.dimmer + .close:not(.inside) {
218
+ pointer-events: none;
219
+ opacity: @closeOpacityDimmed;
220
+ }
221
+ }
222
+ .ui.dimmer > .ui.modal:not(.fullscreen) > .close:not(.inside){
223
+ text-shadow: @closeShadow;
224
+ }
225
+ .ui.inverted.dimmer > .ui.modal:not(.fullscreen) > .close:not(.inside){
226
+ text-shadow: @invertedCloseShadow;
215
227
  }
216
228
  }
217
229
  @media only screen and (min-width : @largeMonitorBreakpoint) {
@@ -53,7 +53,7 @@ $.fn.nag = function(parameters) {
53
53
  $module = $(this),
54
54
 
55
55
  $context = (settings.context)
56
- ? $(settings.context)
56
+ ? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
57
57
  : $('body'),
58
58
 
59
59
  element = this,
@@ -169,28 +169,29 @@ a.ui.nag {
169
169
  /*--------------
170
170
  Colors
171
171
  -------------- */
172
-
173
- each(@colors, {
174
- @color: replace(@key, '@', '');
175
- @c: @colors[@@color][color];
176
- @l: @colors[@@color][light];
177
- @isVeryDark: @colors[@@color][isVeryDark];
178
-
179
- .ui.@{color}.nag {
180
- background-color: @c;
181
- & when (@isVeryDark) {
182
- color: @invertedTextColor;
172
+ & when not (@variationNagColors = false) {
173
+ each(@variationNagColors, {
174
+ @color: @value;
175
+ @c: @colors[@@color][color];
176
+ @l: @colors[@@color][light];
177
+ @isVeryDark: @colors[@@color][isVeryDark];
178
+
179
+ .ui.@{color}.nag {
180
+ background-color: @c;
181
+ & when (@isVeryDark) {
182
+ color: @invertedTextColor;
183
+ }
183
184
  }
184
- }
185
- & when (@variationNagInverted) {
186
- .ui.inverted.@{color}.nag {
187
- background-color: @l;
188
- & .title when (@isVeryDark) {
189
- color: @titleColor;
185
+ & when (@variationNagInverted) {
186
+ .ui.inverted.@{color}.nag {
187
+ background-color: @l;
188
+ & .title when (@isVeryDark) {
189
+ color: @titleColor;
190
+ }
190
191
  }
191
192
  }
192
- }
193
- })
193
+ })
194
+ }
194
195
 
195
196
  & when (@variationNagGroups) {
196
197
  /*******************************
@@ -62,11 +62,11 @@ $.fn.popup = function(parameters) {
62
62
  moduleNamespace = 'module-' + namespace,
63
63
 
64
64
  $module = $(this),
65
- $context = $(settings.context),
66
- $scrollContext = $(settings.scrollContext),
67
- $boundary = $(settings.boundary),
65
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
66
+ $scrollContext = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
67
+ $boundary = [window,document].indexOf(settings.boundary) < 0 ? $(document).find(settings.boundary) : $(settings.boundary),
68
68
  $target = (settings.target)
69
- ? $(settings.target)
69
+ ? ([window,document].indexOf(settings.target) < 0 ? $(document).find(settings.target) : $(settings.target))
70
70
  : $module,
71
71
 
72
72
  $popup,
@@ -121,8 +121,8 @@ $.fn.popup = function(parameters) {
121
121
  },
122
122
 
123
123
  refresh: function() {
124
- if(settings.popup) {
125
- $popup = $(settings.popup).eq(0);
124
+ if(settings.popup && typeof settings.popup === 'string') {
125
+ $popup = $(document).find(settings.popup).eq(0);
126
126
  }
127
127
  else {
128
128
  if(settings.inline) {
@@ -286,8 +286,8 @@ $.fn.popup = function(parameters) {
286
286
  }
287
287
  settings.onCreate.call($popup, element);
288
288
  }
289
- else if(settings.popup) {
290
- $(settings.popup).data(metadata.activator, $module);
289
+ else if(settings.popup && typeof settings.popup === 'string') {
290
+ $(document).find(settings.popup).data(metadata.activator, $module);
291
291
  module.verbose('Used popup specified in settings');
292
292
  module.refresh();
293
293
  if(settings.hoverable) {
@@ -309,7 +309,7 @@ $.fn.popup = function(parameters) {
309
309
  },
310
310
 
311
311
  createID: function() {
312
- id = (Math.random().toString(16) + '000000000').substr(2, 8);
312
+ id = (Math.random().toString(16) + '000000000').slice(2, 10);
313
313
  elementNamespace = '.' + id;
314
314
  module.verbose('Creating unique id for element', id);
315
315
  },
@@ -368,7 +368,7 @@ $.fn.popup = function(parameters) {
368
368
  },
369
369
 
370
370
  hideAll: function() {
371
- $(selector.popup)
371
+ $(document).find(selector.popup)
372
372
  .filter('.' + className.popupVisible)
373
373
  .each(function() {
374
374
  $(this)