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
@@ -468,4 +468,4 @@
468
468
  </div>
469
469
 
470
470
  </body>
471
- </html>
471
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fomantic-ui",
3
- "version": "2.9.0-beta.31",
3
+ "version": "2.9.0-beta.312+86121ef",
4
4
  "description": "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
5
5
  "keywords": [
6
6
  "fomantic-ui",
@@ -24,20 +24,15 @@
24
24
  "url": "https://github.com/fomantic/Fomantic-UI.git"
25
25
  },
26
26
  "scripts": {
27
- "install": "gulp install",
28
27
  "build": "gulp build",
29
28
  "changelog": "auto-changelog -p"
30
29
  },
31
30
  "dependencies": {
32
- "jquery": "^3.4.0",
31
+ "@actions/core": "^1.6.0",
32
+ "@octokit/core": ">=3",
33
33
  "@octokit/rest": "^16.16.0",
34
- "gulp-concat-filenames": "^1.2.0",
35
- "gulp-debug": "^4.0.0",
36
- "gulp-git": "^2.9.0",
37
- "gulp-tap": "^1.0.1",
38
- "less": "^3.7.1 || ^4.0.0",
39
- "merge-stream": "^2.0.0",
40
34
  "better-console": "1.0.1",
35
+ "browserslist": "^4.19.1",
41
36
  "del": "^3.0.0",
42
37
  "extend": "^3.0.2",
43
38
  "gulp": "^4.0.0",
@@ -47,9 +42,12 @@
47
42
  "gulp-clone": "^2.0.1",
48
43
  "gulp-concat": "^2.6.1",
49
44
  "gulp-concat-css": "^3.1.0",
45
+ "gulp-concat-filenames": "^1.2.0",
50
46
  "gulp-copy": "^4.0.0",
47
+ "gulp-debug": "^4.0.0",
51
48
  "gulp-dedupe": "0.0.2",
52
49
  "gulp-flatten": "^0.4.0",
50
+ "gulp-git": "^2.9.0",
53
51
  "gulp-header": "^2.0.5",
54
52
  "gulp-if": "^2.0.2",
55
53
  "gulp-json-editor": "^2.4.3",
@@ -59,11 +57,15 @@
59
57
  "gulp-print": "^5.0.0",
60
58
  "gulp-rename": "^1.4.0",
61
59
  "gulp-replace": "^1.0.0",
62
- "gulp-rtlcss": "^1.3.0",
60
+ "gulp-rtlcss": "^2.0.0",
61
+ "gulp-tap": "^1.0.1",
63
62
  "gulp-uglify": "^3.0.1",
64
- "inquirer": "^6.2.1",
63
+ "inquirer": "^8.2.0",
64
+ "jquery": "^3.4.0",
65
+ "less": "^3.7.1 || ^4.0.0",
65
66
  "map-stream": "^0.1.0",
66
- "mkdirp": "^0.5.1",
67
+ "merge-stream": "^2.0.0",
68
+ "mkdirp": "^1.0.4",
67
69
  "normalize-path": "^3.0.0",
68
70
  "replace-ext": "^1.0.0",
69
71
  "require-dot-file": "^0.4.0",
@@ -72,13 +74,13 @@
72
74
  },
73
75
  "devDependencies": {
74
76
  "all-contributors-cli": "^6.7.0",
75
- "auto-changelog": "^1.15.0",
77
+ "auto-changelog": "^2.4.0",
76
78
  "node-fetch": "^2.6.0",
77
- "semver": "^6.3.0"
79
+ "semver": "^7.3.5"
78
80
  },
79
81
  "engines": {
80
- "node": ">=10.15.3",
81
- "npm": ">=6.4.1"
82
+ "node": ">=12",
83
+ "npm": ">=6.14.8"
82
84
  },
83
85
  "title": "Fomantic UI",
84
86
  "style": "dist/semantic.css"
@@ -1,72 +1,81 @@
1
1
  // node
2
2
  const fs = require('fs')
3
3
  const path = require('path')
4
+ const childProcess = require('child_process')
4
5
 
5
6
  // npm
6
7
  const fetch = require('node-fetch')
7
8
  const semver = require('semver')
9
+ const actions = require('@actions/core')
8
10
 
9
11
  // pkg
10
12
  const pkg = require('../package.json')
13
+ const process = require('process')
11
14
 
12
15
  const ghBase = 'https://api.github.com'
13
16
  const repoUrlPath = 'fomantic/Fomantic-UI'
14
17
  const npmBase = 'https://registry.npmjs.org'
15
18
  const npmPackage = 'fomantic-ui'
19
+ const currentRev = childProcess // get the current rev from the repo
20
+ .execSync('git rev-parse HEAD')
21
+ .toString()
22
+ .trim()
23
+ .slice(0, 7)
16
24
 
17
-
18
- const getGitHubVersion = async function () {
19
- return fetch(`${ghBase}/repos/${repoUrlPath}/milestones`)
25
+ const getNextVersion = async function () {
26
+ const versions = await fetch(`${ghBase}/repos/${repoUrlPath}/milestones`)
20
27
  .then(r => r.json())
21
- .then(milestones => milestones.filter(m => m.title.indexOf('x') === -1).map(m => m.title).sort()[0])
22
- }
23
-
24
- const getCurrentNpmVersion = async function () {
25
- return fetch(`${npmBase}/${npmPackage}`)
26
- .then(r => r.json())
27
- .then(p => p['dist-tags'].nightly)
28
- }
28
+ .then(milestones => milestones.filter(m => m.title.indexOf('x') === -1)) // remove all versions with `x` in it
29
+ .then(versions => versions.map(m => m.title)) // create array of versions
30
+ .then(versions => semver.sort(versions))
29
31
 
30
- const getNpmPreRelease = async function () {
31
- return fetch(`${npmBase}/${npmPackage}`)
32
- .then(r => r.json())
33
- .then(p => p['dist-tags'].nightly)
34
- .then(v => semver.prerelease(v))
35
- .then(pr => pr === null ? ['beta', 0] : pr)
32
+ // Return first entry aka the smallest version in milestones which would therefore
33
+ // be the next version
34
+ return semver.parse(versions[0])
36
35
  }
37
36
 
38
- const getAllNpmVersions = async function () {
39
- // The versions property sometimes does not include versions which are in "time"!
40
- // That's why "time" is used here
41
- return fetch(`${npmBase}/${npmPackage}`)
37
+ const getPublishedVersion = async function () {
38
+ // get the latest published nightly tagged version
39
+ return semver.parse(
40
+ await fetch(`${npmBase}/${npmPackage}`)
42
41
  .then(r => r.json())
43
- .then(p => Object.keys(p['time']))
42
+ .then(p => {
43
+ let nightly = p['dist-tags'].nightly ?? '';
44
+ let versionInfo = p.versions[nightly] ?? {};
45
+ let buildCommit = nightly.indexOf('+')===-1 && versionInfo.gitHead ? '+'+(versionInfo.gitHead ?? '').slice(0,7) : '';
46
+ return nightly+buildCommit;
47
+ })
48
+ )
44
49
  }
45
50
 
46
51
  const getNightlyVersion = async function () {
47
- const nextVersion = await getGitHubVersion()
48
- const currentNightlyWithPre = semver.parse(await getCurrentNpmVersion())
49
- const currentNightly = `${currentNightlyWithPre.major}.${currentNightlyWithPre.minor}.${currentNightlyWithPre.patch}`
50
- const allNpmVersions = await getAllNpmVersions()
51
- let nightlyVersion = `${nextVersion}-beta.0`
52
+ const next = semver.parse(await getNextVersion())
53
+ const current = semver.parse(await getPublishedVersion())
52
54
 
53
- if (semver.eq(nextVersion, currentNightly)) {
54
- const preRelease = await getNpmPreRelease()
55
+ if (current.build[0] === currentRev) {
56
+ actions.setOutput('shouldPublish', false)
55
57
 
56
- nightlyVersion = semver.inc(
57
- `${nextVersion}-${preRelease[0]}.${preRelease[1]}`,
58
- 'prerelease'
59
- )
58
+ console.log('No new commits since last publish. Exiting.')
59
+ process.exit(0)
60
+ return
60
61
  }
61
- //check if version was already uploaded to npm previously
62
- while (allNpmVersions.indexOf(nightlyVersion) !== -1) {
62
+
63
+ let nightlyVersion = `${next.version}-beta.0`
64
+
65
+ // Check if published version is the same version as next version.
66
+ // Only check major, minor and patch as previously published nightly
67
+ // versions would include prerelease tag and build metadata
68
+ if (semver.eq(`${next.major}.${next.minor}.${next.patch}`, `${current.major}.${current.minor}.${current.patch}`)) {
69
+ // If they match then a nightly version has already been published, so we need to increment
70
+ // the prerelease and add the new rev as build metadata
63
71
  nightlyVersion = semver.inc(
64
- nightlyVersion,
65
- 'prerelease'
72
+ `${next.version}-beta.${current.prerelease[1]}`,
73
+ 'prerelease'
66
74
  )
67
75
  }
68
76
 
69
- return nightlyVersion
77
+ actions.setOutput('shouldPublish', 'yes')
78
+ return `${nightlyVersion}+${currentRev}`
70
79
  }
71
80
 
72
81
  getNightlyVersion()
@@ -65,7 +65,7 @@ $.api = $.fn.api = function(parameters) {
65
65
 
66
66
  // context used for state
67
67
  $context = (settings.stateContext)
68
- ? $(settings.stateContext)
68
+ ? ([window,document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
69
69
  : $module,
70
70
 
71
71
  // request details
@@ -74,6 +74,7 @@ $.api = $.fn.api = function(parameters) {
74
74
  url,
75
75
  data,
76
76
  requestStartTime,
77
+ originalData,
77
78
 
78
79
  // standard module
79
80
  element = this,
@@ -86,6 +87,7 @@ $.api = $.fn.api = function(parameters) {
86
87
 
87
88
  initialize: function() {
88
89
  if(!methodInvoked) {
90
+ originalData = settings.data;
89
91
  module.bind.events();
90
92
  }
91
93
  module.instantiate();
@@ -148,8 +150,8 @@ $.api = $.fn.api = function(parameters) {
148
150
  module.error(error.noStorage);
149
151
  return;
150
152
  }
151
- response = sessionStorage.getItem(url);
152
- module.debug('Using cached response', url, response);
153
+ response = sessionStorage.getItem(url + module.get.normalizedData());
154
+ module.debug('Using cached response', url, settings.data, response);
153
155
  response = module.decode.json(response);
154
156
  return response;
155
157
  }
@@ -167,8 +169,8 @@ $.api = $.fn.api = function(parameters) {
167
169
  if( $.isPlainObject(response) ) {
168
170
  response = JSON.stringify(response);
169
171
  }
170
- sessionStorage.setItem(url, response);
171
- module.verbose('Storing cached response for url', url, response);
172
+ sessionStorage.setItem(url + module.get.normalizedData(), response);
173
+ module.verbose('Storing cached response for url', url, settings.data, response);
172
174
  }
173
175
  },
174
176
 
@@ -197,7 +199,7 @@ $.api = $.fn.api = function(parameters) {
197
199
 
198
200
  // Add form content
199
201
  if(settings.serializeForm) {
200
- settings.data = module.add.formData(settings.data);
202
+ settings.data = module.add.formData(originalData || settings.data);
201
203
  }
202
204
 
203
205
  // call beforesend and get any settings changes
@@ -334,10 +336,6 @@ $.api = $.fn.api = function(parameters) {
334
336
  cancelled: function() {
335
337
  return (module.cancelled || false);
336
338
  },
337
- succesful: function() {
338
- module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.');
339
- return module.was.successful();
340
- },
341
339
  successful: function() {
342
340
  return (module.request && module.request.state() == 'resolved');
343
341
  },
@@ -365,8 +363,8 @@ $.api = $.fn.api = function(parameters) {
365
363
  var
366
364
  // allow legacy {$var} style
367
365
  variable = (templatedString.indexOf('$') !== -1)
368
- ? templatedString.substr(2, templatedString.length - 3)
369
- : templatedString.substr(1, templatedString.length - 2),
366
+ ? templatedString.slice(2, -1)
367
+ : templatedString.slice(1, -1),
370
368
  value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
371
369
  ? urlData[variable]
372
370
  : ($module.data(variable) !== undefined)
@@ -397,8 +395,8 @@ $.api = $.fn.api = function(parameters) {
397
395
  var
398
396
  // allow legacy {/$var} style
399
397
  variable = (templatedString.indexOf('$') !== -1)
400
- ? templatedString.substr(3, templatedString.length - 4)
401
- : templatedString.substr(2, templatedString.length - 3),
398
+ ? templatedString.slice(3, -1)
399
+ : templatedString.slice(2, -1),
402
400
  value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
403
401
  ? urlData[variable]
404
402
  : ($module.data(variable) !== undefined)
@@ -429,24 +427,76 @@ $.api = $.fn.api = function(parameters) {
429
427
  },
430
428
  formData: function(data) {
431
429
  var
432
- canSerialize = ($.fn.serializeObject !== undefined),
433
- formData = (canSerialize)
434
- ? $form.serializeObject()
435
- : $form.serialize(),
436
- hasOtherData
430
+ formData = {},
431
+ hasOtherData,
432
+ useFormDataApi = settings.serializeForm === 'formdata'
437
433
  ;
438
- data = data || settings.data;
434
+ data = data || originalData || settings.data;
439
435
  hasOtherData = $.isPlainObject(data);
440
436
 
437
+ if (useFormDataApi) {
438
+ formData = new FormData($form[0]);
439
+ settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
440
+ settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
441
+ } else {
442
+ var formArray = $form.serializeArray(),
443
+ pushes = {},
444
+ pushValues= {},
445
+ build = function(base, key, value) {
446
+ base[key] = value;
447
+ return base;
448
+ }
449
+ ;
450
+ // add files
451
+ $.each($('input[type="file"]',$form), function(i, tag) {
452
+ $.each($(tag)[0].files, function(j, file) {
453
+ formArray.push({name:tag.name, value: file});
454
+ });
455
+ });
456
+ $.each(formArray, function(i, el) {
457
+ if (!settings.regExp.validate.test(el.name)) return;
458
+ var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
459
+ floatValue = parseFloat(el.value),
460
+ value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
461
+ nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
462
+ ;
463
+ if(!(pushKey in pushes)) {
464
+ pushes[pushKey] = 0;
465
+ pushValues[pushKey] = value;
466
+ } else if (Array.isArray(pushValues[pushKey])) {
467
+ pushValues[pushKey].push(value);
468
+ } else {
469
+ pushValues[pushKey] = [pushValues[pushKey] , value];
470
+ }
471
+ value = pushValues[pushKey];
472
+
473
+ while ((k = nameKeys.pop()) !== undefined) {
474
+ // foo[]
475
+ if (k == '' && !Array.isArray(value)){
476
+ value = build([], pushes[pushKey]++, value);
477
+ }
478
+ // foo[n]
479
+ else if (settings.regExp.fixed.test(k)) {
480
+ value = build([], k, value);
481
+ }
482
+ // foo; foo[bar]
483
+ else if (settings.regExp.named.test(k)) {
484
+ value = build({}, k, value);
485
+ }
486
+ }
487
+ formData = $.extend(true, formData, value);
488
+ });
489
+ }
490
+
441
491
  if(hasOtherData) {
442
- if(canSerialize) {
443
- module.debug('Extending existing data with form data', data, formData);
444
- data = $.extend(true, {}, data, formData);
445
- }
446
- else {
447
- module.error(error.missingSerialize);
448
- module.debug('Cant extend data. Replacing data with form data', data, formData);
492
+ module.debug('Extending existing data with form data', data, formData);
493
+ if(useFormDataApi) {
494
+ $.each(Object.keys(data),function(i, el){
495
+ formData.append(el, data[el]);
496
+ });
449
497
  data = formData;
498
+ } else {
499
+ data = $.extend(true, {}, data, formData);
450
500
  }
451
501
  }
452
502
  else {
@@ -698,6 +748,9 @@ $.api = $.fn.api = function(parameters) {
698
748
  },
699
749
 
700
750
  get: {
751
+ normalizedData: function(){
752
+ return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
753
+ },
701
754
  responseFromXHR: function(xhr) {
702
755
  return $.isPlainObject(xhr)
703
756
  ? (module.is.expectingJSON())
@@ -1083,6 +1136,8 @@ $.api.settings = {
1083
1136
  defaultData : true,
1084
1137
 
1085
1138
  // whether to serialize closest form
1139
+ // use true to convert complex named keys like a[b][1][c][] into a nested object
1140
+ // use 'formdata' for formdata web api
1086
1141
  serializeForm : false,
1087
1142
 
1088
1143
  // how long to wait before request should occur
@@ -1105,7 +1160,7 @@ $.api.settings = {
1105
1160
  responseAsync : false,
1106
1161
 
1107
1162
  // whether onResponse should work with response value without force converting into an object
1108
- rawResponse : false,
1163
+ rawResponse : true,
1109
1164
 
1110
1165
  // callbacks before request
1111
1166
  beforeSend : function(settings) { return settings; },
@@ -1141,7 +1196,6 @@ $.api.settings = {
1141
1196
  legacyParameters : 'You are using legacy API success callback names',
1142
1197
  method : 'The method you called is not defined',
1143
1198
  missingAction : 'API action used but no url was defined',
1144
- missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',
1145
1199
  missingURL : 'No URL specified for api event',
1146
1200
  noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
1147
1201
  noStorage : 'Caching responses locally requires session storage',
@@ -1154,6 +1208,11 @@ $.api.settings = {
1154
1208
  regExp : {
1155
1209
  required : /\{\$*[A-z0-9]+\}/g,
1156
1210
  optional : /\{\/\$*[A-z0-9]+\}/g,
1211
+ validate: /^[a-z_][a-z0-9_-]*(?:\[[a-z0-9_-]*\])*$/i,
1212
+ key: /[a-z0-9_-]+|(?=\[\])/gi,
1213
+ push: /^$/,
1214
+ fixed: /^\d+$/,
1215
+ named: /^[a-z0-9_-]+$/i
1157
1216
  },
1158
1217
 
1159
1218
  className: {
@@ -131,6 +131,11 @@ $.fn.form = function(parameters) {
131
131
  $reset = $module.find(selector.reset);
132
132
  },
133
133
 
134
+ refreshEvents: function() {
135
+ module.removeEvents();
136
+ module.bindEvents();
137
+ },
138
+
134
139
  submit: function() {
135
140
  module.verbose('Submitting form', $module);
136
141
  submitting = true;
@@ -391,7 +396,6 @@ $.fn.form = function(parameters) {
391
396
  $module.off(eventNamespace);
392
397
  $field.off(eventNamespace);
393
398
  $submit.off(eventNamespace);
394
- $field.off(eventNamespace);
395
399
  },
396
400
 
397
401
  event: {
@@ -419,6 +423,7 @@ $.fn.form = function(parameters) {
419
423
  $field.one('keyup' + eventNamespace, module.event.field.keyup);
420
424
  module.submit();
421
425
  module.debug('Enter pressed on input submitting form');
426
+ event.preventDefault();
422
427
  }
423
428
  keyHeldDown = true;
424
429
  }
@@ -543,7 +548,7 @@ $.fn.form = function(parameters) {
543
548
  parts,
544
549
  suffixPrompt
545
550
  ;
546
- if(ancillary && ancillary.indexOf('..') >= 0) {
551
+ if(ancillary && ['integer', 'decimal', 'number'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
547
552
  parts = ancillary.split('..', 2);
548
553
  if(!rule.prompt) {
549
554
  suffixPrompt = (
@@ -585,7 +590,7 @@ $.fn.form = function(parameters) {
585
590
  if(isLegacySettings) {
586
591
  // 1.x (ducktyped)
587
592
  settings = $.extend(true, {}, $.fn.form.settings, legacyParameters);
588
- validation = $.extend({}, $.fn.form.settings.defaults, parameters);
593
+ validation = $.extend(true, {}, $.fn.form.settings.defaults, parameters);
589
594
  module.error(settings.error.oldSyntax, element);
590
595
  module.verbose('Extending settings from legacy parameters', validation, settings);
591
596
  }
@@ -595,13 +600,13 @@ $.fn.form = function(parameters) {
595
600
  parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
596
601
  }
597
602
  settings = $.extend(true, {}, $.fn.form.settings, parameters);
598
- validation = $.extend({}, $.fn.form.settings.defaults, settings.fields);
603
+ validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
599
604
  module.verbose('Extending settings', validation, settings);
600
605
  }
601
606
  }
602
607
  else {
603
- settings = $.fn.form.settings;
604
- validation = $.fn.form.settings.defaults;
608
+ settings = $.extend(true, {}, $.fn.form.settings);
609
+ validation = $.extend(true, {}, $.fn.form.settings.defaults);
605
610
  module.verbose('Using default form validation', validation, settings);
606
611
  }
607
612
 
@@ -863,9 +868,11 @@ $.fn.form = function(parameters) {
863
868
  }
864
869
  });
865
870
  module.debug('Adding rules', newValidation.rules, validation);
871
+ module.refreshEvents();
866
872
  },
867
873
  fields: function(fields) {
868
- validation = $.extend({}, validation, module.get.fieldsFromShorthand(fields));
874
+ validation = $.extend(true, {}, validation, module.get.fieldsFromShorthand(fields));
875
+ module.refreshEvents();
869
876
  },
870
877
  prompt: function(identifier, errors, internal) {
871
878
  var
@@ -886,13 +893,13 @@ $.fn.form = function(parameters) {
886
893
  }
887
894
  if(settings.inline) {
888
895
  if(!promptExists) {
889
- $prompt = settings.templates.prompt(errors, className.label);
896
+ $prompt = $('<div/>').addClass(className.label);
890
897
  $prompt
891
898
  .appendTo($fieldGroup)
892
899
  ;
893
900
  }
894
901
  $prompt
895
- .html(errors[0])
902
+ .html(settings.templates.prompt(errors))
896
903
  ;
897
904
  if(!promptExists) {
898
905
  if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
@@ -962,6 +969,7 @@ $.fn.form = function(parameters) {
962
969
  $.each(fields, function(index, field) {
963
970
  module.remove.rule(field);
964
971
  });
972
+ module.refreshEvents();
965
973
  },
966
974
  // alias
967
975
  rules: function(field, rules) {
@@ -1085,12 +1093,15 @@ $.fn.form = function(parameters) {
1085
1093
  }
1086
1094
  else if(isCheckbox) {
1087
1095
  module.verbose('Setting checkbox value', value, $element);
1088
- if(value === true || value === 1) {
1096
+ if(value === true || value === 1 || value === 'on') {
1089
1097
  $element.checkbox('check');
1090
1098
  }
1091
1099
  else {
1092
1100
  $element.checkbox('uncheck');
1093
1101
  }
1102
+ if(typeof value === 'string') {
1103
+ $field.val(value);
1104
+ }
1094
1105
  }
1095
1106
  else if(isDropdown) {
1096
1107
  module.verbose('Setting dropdown value', value, $element);
@@ -1203,10 +1214,10 @@ $.fn.form = function(parameters) {
1203
1214
  if(event && $module.data('moduleApi') !== undefined) {
1204
1215
  event.stopImmediatePropagation();
1205
1216
  }
1206
- if(settings.errorFocus) {
1217
+ if(settings.errorFocus && ignoreCallbacks !== true) {
1207
1218
  var focusElement, hasTabIndex = true;
1208
1219
  if (typeof settings.errorFocus === 'string') {
1209
- focusElement = $(settings.errorFocus);
1220
+ focusElement = $(document).find(settings.errorFocus);
1210
1221
  hasTabIndex = focusElement.is('[tabindex]');
1211
1222
  // to be able to focus/scroll into non input elements we need a tabindex
1212
1223
  if (!hasTabIndex) {
@@ -1526,7 +1537,7 @@ $.fn.form.settings = {
1526
1537
 
1527
1538
  autoCheckRequired : false,
1528
1539
  preventLeaving : false,
1529
- errorFocus : false,
1540
+ errorFocus : true,
1530
1541
  dateHandling : 'date', // 'date', 'input', 'formatter'
1531
1542
 
1532
1543
  onValid : function() {},
@@ -1582,7 +1593,6 @@ $.fn.form.settings = {
1582
1593
  doesntContain : '{name} cannot contain "{ruleValue}"',
1583
1594
  doesntContainExactly : '{name} cannot contain exactly "{ruleValue}"',
1584
1595
  minLength : '{name} must be at least {ruleValue} characters',
1585
- length : '{name} must be at least {ruleValue} characters',
1586
1596
  exactLength : '{name} must be exactly {ruleValue} characters',
1587
1597
  maxLength : '{name} cannot be longer than {ruleValue} characters',
1588
1598
  match : '{name} must match {ruleValue} field',
@@ -1596,7 +1606,7 @@ $.fn.form.settings = {
1596
1606
  selector : {
1597
1607
  checkbox : 'input[type="checkbox"], input[type="radio"]',
1598
1608
  clear : '.clear',
1599
- field : 'input:not(.search):not([type="file"]), textarea, select',
1609
+ field : 'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
1600
1610
  group : '.field',
1601
1611
  input : 'input:not([type="file"])',
1602
1612
  message : '.error.message',
@@ -1637,15 +1647,22 @@ $.fn.form.settings = {
1637
1647
  html += '<li>' + value + '</li>';
1638
1648
  });
1639
1649
  html += '</ul>';
1640
- return $(html);
1650
+ return html;
1641
1651
  },
1642
1652
 
1643
- // template that produces label
1644
- prompt: function(errors, labelClasses) {
1645
- return $('<div/>')
1646
- .addClass(labelClasses)
1647
- .html(errors[0])
1653
+ // template that produces label content
1654
+ prompt: function(errors) {
1655
+ if(errors.length === 1){
1656
+ return errors[0];
1657
+ }
1658
+ var
1659
+ html = '<ul class="ui list">'
1648
1660
  ;
1661
+ $.each(errors, function(index, value) {
1662
+ html += '<li>' + value + '</li>';
1663
+ });
1664
+ html += '</ul>';
1665
+ return html;
1649
1666
  }
1650
1667
  },
1651
1668
 
@@ -1855,14 +1872,6 @@ $.fn.form.settings = {
1855
1872
  ;
1856
1873
  },
1857
1874
 
1858
- // see rls notes for 2.0.6 (this is a duplicate of minLength)
1859
- length: function(value, requiredLength) {
1860
- return (value !== undefined)
1861
- ? (value.length >= requiredLength)
1862
- : false
1863
- ;
1864
- },
1865
-
1866
1875
  // is exactly length
1867
1876
  exactLength: function(value, requiredLength) {
1868
1877
  return (value !== undefined)
@@ -74,7 +74,7 @@ $.fn.state = function(parameters) {
74
74
 
75
75
  // bind events with delegated events
76
76
  if(settings.context && moduleSelector !== '') {
77
- $(settings.context)
77
+ ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
78
78
  .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
79
79
  .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
80
80
  .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
@@ -58,7 +58,7 @@ $.fn.visibility = function(parameters) {
58
58
  $window = $(window),
59
59
 
60
60
  $module = $(this),
61
- $context = $(settings.context),
61
+ $context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
62
62
 
63
63
  $placeholder,
64
64
 
@@ -428,7 +428,7 @@ $.fn.visibility = function(parameters) {
428
428
  },
429
429
  verticallyScrollableContext: function() {
430
430
  var
431
- overflowY = ($context.get(0) !== window)
431
+ overflowY = ($context[0] !== window)
432
432
  ? $context.css('overflow-y')
433
433
  : false
434
434
  ;
@@ -436,7 +436,7 @@ $.fn.visibility = function(parameters) {
436
436
  },
437
437
  horizontallyScrollableContext: function() {
438
438
  var
439
- overflowX = ($context.get(0) !== window)
439
+ overflowX = ($context[0] !== window)
440
440
  ? $context.css('overflow-x')
441
441
  : false
442
442
  ;