rbbt-rest 1.8.42 → 1.8.43

Sign up to get free protection for your applications and to get access to all the features.
Files changed (421) hide show
  1. checksums.yaml +4 -4
  2. data/share/views/compass/old/base/backgrounds.sass +41 -0
  3. data/share/views/compass/old/base/blocks.sass +92 -0
  4. data/share/views/compass/old/base/color.sass +66 -0
  5. data/share/views/compass/old/base/colors.sass +66 -0
  6. data/share/views/compass/old/base/font-scale.sass +20 -0
  7. data/share/views/compass/old/base/fonts.sass +56 -0
  8. data/share/views/compass/old/base/hide.sass +95 -0
  9. data/share/views/compass/old/base/icon_content.scss +569 -0
  10. data/share/views/compass/old/base/icons.sass +75 -0
  11. data/share/views/compass/old/base/material.sass +223 -0
  12. data/share/views/compass/old/base/misc.sass +2 -0
  13. data/share/views/compass/old/base/screen_sizes.sass +16 -0
  14. data/share/views/compass/old/base/text.sass +70 -0
  15. data/share/views/compass/old/base/util.sass +6 -0
  16. data/share/views/compass/old/base/variables.sass +68 -0
  17. data/share/views/compass/old/base/variables/color.sass +27 -0
  18. data/share/views/compass/old/blocks.sass +0 -0
  19. data/share/views/compass/old/cards.sass +131 -0
  20. data/share/views/compass/old/color.sass +10 -0
  21. data/share/views/compass/old/color/blocks.sass +0 -0
  22. data/share/views/compass/old/color/buttons.sass +36 -0
  23. data/share/views/compass/old/color/elements.sass +2 -0
  24. data/share/views/compass/old/color/font.sass +13 -0
  25. data/share/views/compass/old/color/top_bar.sass +18 -0
  26. data/share/views/compass/old/elements.sass +218 -0
  27. data/share/views/compass/old/elements/buttons.sass +18 -0
  28. data/share/views/compass/old/elements/forms.sass +197 -0
  29. data/share/views/compass/old/elements/lists.sass +14 -0
  30. data/share/views/compass/old/elements/materials.sass +1 -0
  31. data/share/views/compass/old/elements/movement.sass +84 -0
  32. data/share/views/compass/old/elements/positions.sass +18 -0
  33. data/share/views/compass/old/elements/table.sass +176 -0
  34. data/share/views/compass/old/elements/tool.sass +60 -0
  35. data/share/views/compass/old/grid.sass +3 -0
  36. data/share/views/compass/old/init.sass +9 -0
  37. data/share/views/compass/old/layout.sass +5 -0
  38. data/share/views/compass/old/layout/body.sass +23 -0
  39. data/share/views/compass/old/layout/footer.sass +44 -0
  40. data/share/views/compass/old/layout/result.sass +6 -0
  41. data/share/views/compass/old/layout/reveal.sass +50 -0
  42. data/share/views/compass/old/layout/top_bar.sass +99 -0
  43. data/share/views/compass/old/layout/top_menu.sass +87 -0
  44. data/share/views/compass/old/menu.sass +43 -0
  45. data/share/views/compass/old/menu/accordion_menu.sass +30 -0
  46. data/share/views/compass/old/menu/actionable.sass +1 -0
  47. data/share/views/compass/old/menu/dropdown_menu.sass +31 -0
  48. data/share/views/compass/old/menu/hide.sass +14 -0
  49. data/share/views/compass/old/menu/menu.sass +98 -0
  50. data/share/views/compass/old/menu/tab_menu.sass +14 -0
  51. data/share/views/compass/old/menu/top_bar.sass +105 -0
  52. data/share/views/compass/old/menu/vertical_menu.sass +21 -0
  53. data/share/views/compass/old/mixins/_all.sass +24 -0
  54. data/share/views/compass/old/mixins/_blocks.sass +79 -0
  55. data/share/views/compass/old/mixins/_compass.sass +0 -0
  56. data/share/views/compass/old/mixins/_deps.sass +5 -0
  57. data/share/views/compass/old/mixins/_hide.sass +76 -0
  58. data/share/views/compass/old/mixins/_keyframes.scss +4 -0
  59. data/share/views/compass/old/mixins/_semantic-ui.sass +2 -0
  60. data/share/views/compass/old/new.sass +1 -0
  61. data/share/views/compass/old/offcanvas.sass +52 -0
  62. data/share/views/compass/old/position/basic.sass +0 -0
  63. data/share/views/compass/old/responsive.sass +53 -0
  64. data/share/views/compass/old/semantic-ui.css +1 -0
  65. data/share/views/compass/old/semantic-ui/semantic-ui.css +19776 -0
  66. data/share/views/compass/old/space/button.sass +74 -0
  67. data/share/views/compass/old/table.sass +142 -0
  68. data/share/views/compass/old/text.sass +48 -0
  69. data/share/views/compass/old/variables/colors.sass +7 -0
  70. data/share/views/compass/old/variables/sizes.sass +5 -0
  71. data/share/views/layout/header.haml +1 -1
  72. data/share/views/public/js/helpers/helpers.js +25 -0
  73. data/share/views/public/js/rbbt.views.js +78 -18
  74. data/share/views/public/js/rbbt/table.js +0 -1
  75. data/share/views/public/plugins/FileSaver/js/FileSaver.js +74 -134
  76. data/share/views/public/plugins/jquery/js/jquery-3.1.1.js +10220 -0
  77. data/share/views/public/plugins/semantic-ui/CONTRIBUTING.md +48 -6
  78. data/share/views/public/plugins/semantic-ui/README.md +40 -15
  79. data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +669 -14
  80. data/share/views/public/plugins/semantic-ui/bower.json +1 -3
  81. data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +7 -10
  82. data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +39 -21
  83. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +2 -3
  84. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +2 -3
  85. data/share/views/public/plugins/semantic-ui/dist/components/ad.css +2 -3
  86. data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +2 -2
  87. data/share/views/public/plugins/semantic-ui/dist/components/api.js +161 -71
  88. data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +2 -3
  89. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +5 -6
  90. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +2 -3
  91. data/share/views/public/plugins/semantic-ui/dist/components/button.css +658 -432
  92. data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +2 -3
  93. data/share/views/public/plugins/semantic-ui/dist/components/card.css +68 -44
  94. data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +2 -3
  95. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +126 -89
  96. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +216 -91
  97. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +2 -3
  98. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +2 -3
  99. data/share/views/public/plugins/semantic-ui/dist/components/colorize.js +1 -1
  100. data/share/views/public/plugins/semantic-ui/dist/components/comment.css +17 -6
  101. data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +2 -3
  102. data/share/views/public/plugins/semantic-ui/dist/components/container.css +29 -7
  103. data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +2 -3
  104. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +7 -9
  105. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +80 -39
  106. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +2 -3
  107. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +2 -3
  108. data/share/views/public/plugins/semantic-ui/dist/components/divider.css +8 -8
  109. data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +2 -3
  110. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +127 -98
  111. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +918 -400
  112. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +2 -3
  113. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +3 -5
  114. data/share/views/public/plugins/semantic-ui/dist/components/embed.css +12 -8
  115. data/share/views/public/plugins/semantic-ui/dist/components/embed.js +51 -17
  116. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +2 -3
  117. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +2 -3
  118. data/share/views/public/plugins/semantic-ui/dist/components/feed.css +5 -6
  119. data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +2 -3
  120. data/share/views/public/plugins/semantic-ui/dist/components/flag.css +10 -3
  121. data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +2 -3
  122. data/share/views/public/plugins/semantic-ui/dist/components/form.css +208 -121
  123. data/share/views/public/plugins/semantic-ui/dist/components/form.js +469 -167
  124. data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +2 -3
  125. data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +2 -3
  126. data/share/views/public/plugins/semantic-ui/dist/components/grid.css +222 -71
  127. data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +2 -3
  128. data/share/views/public/plugins/semantic-ui/dist/components/header.css +47 -48
  129. data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +2 -3
  130. data/share/views/public/plugins/semantic-ui/dist/components/icon.css +839 -280
  131. data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +2 -3
  132. data/share/views/public/plugins/semantic-ui/dist/components/image.css +7 -3
  133. data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +2 -3
  134. data/share/views/public/plugins/semantic-ui/dist/components/input.css +91 -61
  135. data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +2 -3
  136. data/share/views/public/plugins/semantic-ui/dist/components/item.css +17 -18
  137. data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +2 -3
  138. data/share/views/public/plugins/semantic-ui/dist/components/label.css +497 -304
  139. data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +2 -3
  140. data/share/views/public/plugins/semantic-ui/dist/components/list.css +56 -27
  141. data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +2 -3
  142. data/share/views/public/plugins/semantic-ui/dist/components/loader.css +101 -40
  143. data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +2 -3
  144. data/share/views/public/plugins/semantic-ui/dist/components/menu.css +335 -179
  145. data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -1
  146. data/share/views/public/plugins/semantic-ui/dist/components/message.css +83 -65
  147. data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +2 -3
  148. data/share/views/public/plugins/semantic-ui/dist/components/modal.css +16 -18
  149. data/share/views/public/plugins/semantic-ui/dist/components/modal.js +68 -42
  150. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +2 -3
  151. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +2 -3
  152. data/share/views/public/plugins/semantic-ui/dist/components/nag.css +6 -7
  153. data/share/views/public/plugins/semantic-ui/dist/components/nag.js +41 -10
  154. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +2 -3
  155. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +2 -3
  156. data/share/views/public/plugins/semantic-ui/dist/components/popup.css +423 -39
  157. data/share/views/public/plugins/semantic-ui/dist/components/popup.js +275 -153
  158. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +2 -3
  159. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +2 -3
  160. data/share/views/public/plugins/semantic-ui/dist/components/progress.css +47 -48
  161. data/share/views/public/plugins/semantic-ui/dist/components/progress.js +202 -64
  162. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +2 -3
  163. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +2 -3
  164. data/share/views/public/plugins/semantic-ui/dist/components/rail.css +24 -4
  165. data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +2 -3
  166. data/share/views/public/plugins/semantic-ui/dist/components/rating.css +12 -13
  167. data/share/views/public/plugins/semantic-ui/dist/components/rating.js +43 -10
  168. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +2 -3
  169. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +2 -3
  170. data/share/views/public/plugins/semantic-ui/dist/components/reset.css +1 -6
  171. data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +2 -3
  172. data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +13 -41
  173. data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +2 -3
  174. data/share/views/public/plugins/semantic-ui/dist/components/search.css +53 -21
  175. data/share/views/public/plugins/semantic-ui/dist/components/search.js +261 -132
  176. data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +2 -3
  177. data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +2 -3
  178. data/share/views/public/plugins/semantic-ui/dist/components/segment.css +124 -72
  179. data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +2 -3
  180. data/share/views/public/plugins/semantic-ui/dist/components/shape.css +11 -8
  181. data/share/views/public/plugins/semantic-ui/dist/components/shape.js +68 -23
  182. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +2 -3
  183. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +2 -3
  184. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +45 -36
  185. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +23 -10
  186. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +2 -3
  187. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +2 -3
  188. data/share/views/public/plugins/semantic-ui/dist/components/site.css +6 -7
  189. data/share/views/public/plugins/semantic-ui/dist/components/site.js +5 -5
  190. data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +2 -3
  191. data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +2 -3
  192. data/share/views/public/plugins/semantic-ui/dist/components/state.js +22 -9
  193. data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +2 -3
  194. data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +46 -45
  195. data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +2 -3
  196. data/share/views/public/plugins/semantic-ui/dist/components/step.css +83 -44
  197. data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +2 -3
  198. data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +2 -3
  199. data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +138 -78
  200. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +1 -2
  201. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +2 -3
  202. data/share/views/public/plugins/semantic-ui/dist/components/tab.css +1 -2
  203. data/share/views/public/plugins/semantic-ui/dist/components/tab.js +95 -46
  204. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +1 -2
  205. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +2 -3
  206. data/share/views/public/plugins/semantic-ui/dist/components/table.css +136 -77
  207. data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +2 -3
  208. data/share/views/public/plugins/semantic-ui/dist/components/transition.css +1 -19
  209. data/share/views/public/plugins/semantic-ui/dist/components/transition.js +58 -32
  210. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +2 -3
  211. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +2 -3
  212. data/share/views/public/plugins/semantic-ui/dist/components/video.js +1 -1
  213. data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +99 -29
  214. data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +2 -3
  215. data/share/views/public/plugins/semantic-ui/dist/semantic.css +5051 -3645
  216. data/share/views/public/plugins/semantic-ui/dist/semantic.js +3345 -1456
  217. data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +2 -2
  218. data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -10
  219. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
  220. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +146 -26
  221. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
  222. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
  223. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  224. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons-local.ttf +0 -0
  225. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.svg +200 -0
  226. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.ttf +0 -0
  227. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.woff +0 -0
  228. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.eot +0 -0
  229. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.svg +2373 -0
  230. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.ttf +0 -0
  231. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.woff +0 -0
  232. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe-content.js +8 -8
  233. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe.js +1 -1
  234. data/share/views/public/plugins/semantic-ui/examples/attached.html +381 -0
  235. data/share/views/public/plugins/semantic-ui/examples/bootstrap.html +4 -4
  236. data/share/views/public/plugins/semantic-ui/examples/components/site.html +1 -1
  237. data/share/views/public/plugins/semantic-ui/examples/fixed.html +10 -10
  238. data/share/views/public/plugins/semantic-ui/examples/grid.html +1 -1
  239. data/share/views/public/plugins/semantic-ui/examples/homepage.html +3 -3
  240. data/share/views/public/plugins/semantic-ui/examples/login.html +1 -1
  241. data/share/views/public/plugins/semantic-ui/examples/responsive.html +5 -5
  242. data/share/views/public/plugins/semantic-ui/examples/sticky.html +1 -1
  243. data/share/views/public/plugins/semantic-ui/examples/theming.html +1 -1
  244. data/share/views/public/plugins/semantic-ui/gulpfile.js +3 -3
  245. data/share/views/public/plugins/semantic-ui/package.json +36 -31
  246. data/share/views/public/plugins/semantic-ui/semantic.json.example +1 -0
  247. data/share/views/public/plugins/semantic-ui/src/_site/collections/message.overrides +1 -1
  248. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/api.js +160 -70
  249. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/colorize.js +235 -229
  250. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +468 -166
  251. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/state.js +21 -8
  252. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +98 -28
  253. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visit.js +14 -6
  254. data/share/views/public/plugins/semantic-ui/src/definitions/collections/breadcrumb.less +2 -3
  255. data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +154 -74
  256. data/share/views/public/plugins/semantic-ui/src/definitions/collections/grid.less +171 -41
  257. data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +235 -99
  258. data/share/views/public/plugins/semantic-ui/src/definitions/collections/message.less +28 -10
  259. data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +77 -16
  260. data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +326 -109
  261. data/share/views/public/plugins/semantic-ui/src/definitions/elements/container.less +25 -7
  262. data/share/views/public/plugins/semantic-ui/src/definitions/elements/divider.less +7 -7
  263. data/share/views/public/plugins/semantic-ui/src/definitions/elements/flag.less +2 -3
  264. data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +3 -4
  265. data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +37 -6
  266. data/share/views/public/plugins/semantic-ui/src/definitions/elements/image.less +324 -319
  267. data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +70 -39
  268. data/share/views/public/plugins/semantic-ui/src/definitions/elements/label.less +363 -245
  269. data/share/views/public/plugins/semantic-ui/src/definitions/elements/list.less +49 -19
  270. data/share/views/public/plugins/semantic-ui/src/definitions/elements/loader.less +72 -9
  271. data/share/views/public/plugins/semantic-ui/src/definitions/elements/rail.less +21 -2
  272. data/share/views/public/plugins/semantic-ui/src/definitions/elements/reveal.less +6 -14
  273. data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +72 -21
  274. data/share/views/public/plugins/semantic-ui/src/definitions/elements/step.less +68 -34
  275. data/share/views/public/plugins/semantic-ui/src/definitions/globals/reset.less +1 -2
  276. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.js +4 -4
  277. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +3 -1
  278. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.js +38 -20
  279. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.less +2 -2
  280. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.js +215 -90
  281. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.less +105 -69
  282. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +79 -38
  283. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +1 -2
  284. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +917 -399
  285. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +62 -25
  286. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.js +51 -17
  287. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.less +163 -164
  288. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +67 -41
  289. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +7 -8
  290. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.js +40 -9
  291. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.less +158 -159
  292. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +274 -152
  293. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.less +712 -332
  294. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.js +201 -63
  295. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.less +0 -1
  296. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.js +42 -9
  297. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.less +0 -1
  298. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +260 -131
  299. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.less +35 -2
  300. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.js +67 -22
  301. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.less +1 -2
  302. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +22 -9
  303. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.less +13 -15
  304. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +137 -77
  305. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.less +1 -2
  306. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +94 -45
  307. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.less +1 -2
  308. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.js +57 -31
  309. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.less +1 -2
  310. data/share/views/public/plugins/semantic-ui/src/definitions/views/ad.less +1 -1
  311. data/share/views/public/plugins/semantic-ui/src/definitions/views/card.less +23 -2
  312. data/share/views/public/plugins/semantic-ui/src/definitions/views/comment.less +18 -5
  313. data/share/views/public/plugins/semantic-ui/src/definitions/views/feed.less +0 -1
  314. data/share/views/public/plugins/semantic-ui/src/definitions/views/item.less +3 -4
  315. data/share/views/public/plugins/semantic-ui/src/definitions/views/statistic.less +18 -19
  316. data/share/views/public/plugins/semantic-ui/src/theme.less +13 -7
  317. data/share/views/public/plugins/semantic-ui/src/themes/amazon/globals/site.variables +43 -0
  318. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/step.overrides +3 -0
  319. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/step.variables +12 -4
  320. data/share/views/public/plugins/semantic-ui/src/themes/basic/globals/reset.overrides +1 -1
  321. data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.variables +5 -5
  322. data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/header.variables +5 -5
  323. data/share/views/public/plugins/semantic-ui/src/themes/colored/modules/checkbox.variables +15 -3
  324. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
  325. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +146 -26
  326. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
  327. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
  328. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
  329. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.variables +1 -1
  330. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.variables +20 -14
  331. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/grid.variables +5 -0
  332. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.variables +57 -28
  333. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.variables +48 -1
  334. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.variables +18 -4
  335. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.variables +28 -4
  336. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/container.variables +14 -1
  337. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +8 -0
  338. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +263 -86
  339. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.variables +3 -1
  340. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/input.variables +7 -10
  341. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.variables +37 -10
  342. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +2 -1
  343. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.variables +17 -5
  344. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/rail.variables +2 -2
  345. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.variables +6 -5
  346. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.variables +7 -4
  347. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/reset.overrides +1 -6
  348. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +216 -67
  349. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.variables +36 -11
  350. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +27 -18
  351. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.variables +52 -4
  352. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/rating.overrides +2 -2
  353. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.variables +16 -0
  354. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sticky.variables +1 -1
  355. data/share/views/public/plugins/semantic-ui/src/themes/default/views/card.variables +11 -0
  356. data/share/views/public/plugins/semantic-ui/src/themes/flat/collections/form.variables +1 -0
  357. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons-local.ttf +0 -0
  358. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.svg +200 -0
  359. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.ttf +0 -0
  360. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.woff +0 -0
  361. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/breadcrumb.variables +11 -0
  362. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/grid.variables +2 -0
  363. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/table.variables +8 -0
  364. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/header.variables +9 -0
  365. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/icon.overrides +208 -0
  366. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/icon.variables +13 -0
  367. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/image.variables +5 -0
  368. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/input.overrides +32 -0
  369. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/input.variables +16 -0
  370. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/label.overrides +9 -0
  371. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/label.variables +4 -0
  372. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/segment.variables +0 -1
  373. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/step.variables +7 -1
  374. data/share/views/public/plugins/semantic-ui/src/themes/github/globals/site.variables +47 -0
  375. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/dropdown.overrides +53 -0
  376. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/dropdown.variables +35 -0
  377. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/popup.variables +12 -0
  378. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.eot +0 -0
  379. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.svg +2373 -0
  380. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.ttf +0 -0
  381. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.woff +0 -0
  382. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.overrides +1 -1
  383. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.variables +1 -1
  384. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.overrides +2 -10
  385. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.variables +4 -2
  386. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/header.overrides +2 -2
  387. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/icon.overrides +934 -0
  388. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/icon.variables +11 -0
  389. data/share/views/public/plugins/semantic-ui/src/themes/material/globals/site.variables +8 -0
  390. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/dropdown.overrides +2 -2
  391. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/modal.overrides +2 -2
  392. data/share/views/public/plugins/semantic-ui/src/themes/twitter/elements/button.variables +1 -2
  393. data/share/views/public/plugins/semantic-ui/tasks/README.md +2 -2
  394. data/share/views/public/plugins/semantic-ui/tasks/admin/components/create.js +8 -8
  395. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/create.js +6 -6
  396. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/init.js +11 -12
  397. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +0 -3
  398. data/share/views/public/plugins/semantic-ui/tasks/build.js +22 -9
  399. data/share/views/public/plugins/semantic-ui/tasks/build/css.js +13 -5
  400. data/share/views/public/plugins/semantic-ui/tasks/collections/build.js +19 -0
  401. data/share/views/public/plugins/semantic-ui/tasks/collections/internal.js +23 -10
  402. data/share/views/public/plugins/semantic-ui/tasks/collections/rtl.js +16 -0
  403. data/share/views/public/plugins/semantic-ui/tasks/config/admin/github.js +1 -2
  404. data/share/views/public/plugins/semantic-ui/tasks/config/admin/oauth.example.js +4 -3
  405. data/share/views/public/plugins/semantic-ui/tasks/config/admin/release.js +1 -0
  406. data/share/views/public/plugins/semantic-ui/tasks/config/admin/templates/README.md +3 -0
  407. data/share/views/public/plugins/semantic-ui/tasks/config/npm/gulpfile.js +3 -3
  408. data/share/views/public/plugins/semantic-ui/tasks/config/project/config.js +3 -4
  409. data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +13 -6
  410. data/share/views/public/plugins/semantic-ui/tasks/config/project/release.js +16 -12
  411. data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +11 -5
  412. data/share/views/public/plugins/semantic-ui/tasks/docs/build.js +1 -1
  413. data/share/views/public/plugins/semantic-ui/tasks/docs/metadata.js +6 -5
  414. data/share/views/public/plugins/semantic-ui/tasks/docs/serve.js +2 -2
  415. data/share/views/public/plugins/semantic-ui/tasks/install.js +332 -272
  416. data/share/views/public/plugins/semantic-ui/tasks/rtl/build.js +2 -2
  417. data/share/views/public/plugins/semantic-ui/tasks/rtl/watch.js +2 -2
  418. data/share/views/public/plugins/semantic-ui/tasks/watch.js +7 -4
  419. data/share/views/public/plugins/semantic-ui/test/helpers/sinon.js +11 -11
  420. data/share/views/public/plugins/semantic-ui/test/modules/module.spec.js +1 -1
  421. metadata +109 -2
@@ -3,7 +3,6 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2015 Contributors
7
6
  * Released under the MIT license
8
7
  * http://opensource.org/licenses/MIT
9
8
  *
@@ -13,6 +12,13 @@
13
12
 
14
13
  "use strict";
15
14
 
15
+ window = (typeof window != 'undefined' && window.Math == Math)
16
+ ? window
17
+ : (typeof self != 'undefined' && self.Math == Math)
18
+ ? self
19
+ : Function('return this')()
20
+ ;
21
+
16
22
  $.fn.popup = function(parameters) {
17
23
  var
18
24
  $allModules = $(this),
@@ -22,7 +28,7 @@ $.fn.popup = function(parameters) {
22
28
 
23
29
  moduleSelector = $allModules.selector || '',
24
30
 
25
- hasTouch = ('ontouchstart' in document.documentElement),
31
+ hasTouch = (true),
26
32
  time = new Date().getTime(),
27
33
  performance = [],
28
34
 
@@ -50,6 +56,8 @@ $.fn.popup = function(parameters) {
50
56
 
51
57
  $module = $(this),
52
58
  $context = $(settings.context),
59
+ $scrollContext = $(settings.scrollContext),
60
+ $boundary = $(settings.boundary),
53
61
  $target = (settings.target)
54
62
  ? $(settings.target)
55
63
  : $module,
@@ -64,6 +72,7 @@ $.fn.popup = function(parameters) {
64
72
  element = this,
65
73
  instance = $module.data(moduleNamespace),
66
74
 
75
+ documentObserver,
67
76
  elementNamespace,
68
77
  id,
69
78
  module
@@ -76,9 +85,12 @@ $.fn.popup = function(parameters) {
76
85
  module.debug('Initializing', $module);
77
86
  module.createID();
78
87
  module.bind.events();
79
- if( !module.exists() && settings.preserve) {
88
+ if(!module.exists() && settings.preserve) {
80
89
  module.create();
81
90
  }
91
+ if(settings.observeChanges) {
92
+ module.observeChanges();
93
+ }
82
94
  module.instantiate();
83
95
  },
84
96
 
@@ -90,13 +102,24 @@ $.fn.popup = function(parameters) {
90
102
  ;
91
103
  },
92
104
 
105
+ observeChanges: function() {
106
+ if('MutationObserver' in window) {
107
+ documentObserver = new MutationObserver(module.event.documentChanged);
108
+ documentObserver.observe(document, {
109
+ childList : true,
110
+ subtree : true
111
+ });
112
+ module.debug('Setting up mutation observer', documentObserver);
113
+ }
114
+ },
115
+
93
116
  refresh: function() {
94
117
  if(settings.popup) {
95
118
  $popup = $(settings.popup).eq(0);
96
119
  }
97
120
  else {
98
121
  if(settings.inline) {
99
- $popup = $target.next(selector.popup).eq(0);
122
+ $popup = $target.nextAll(selector.popup).eq(0);
100
123
  settings.popup = $popup;
101
124
  }
102
125
  }
@@ -120,10 +143,13 @@ $.fn.popup = function(parameters) {
120
143
  : $body
121
144
  ;
122
145
  }
123
- if( $offsetParent.is('html') ) {
146
+ if( $offsetParent.is('html') && $offsetParent[0] !== $body[0] ) {
124
147
  module.debug('Setting page as offset parent');
125
148
  $offsetParent = $body;
126
149
  }
150
+ if( module.get.variation() ) {
151
+ module.set.variation();
152
+ }
127
153
  },
128
154
 
129
155
  reposition: function() {
@@ -133,6 +159,9 @@ $.fn.popup = function(parameters) {
133
159
 
134
160
  destroy: function() {
135
161
  module.debug('Destroying previous module');
162
+ if(documentObserver) {
163
+ documentObserver.disconnect();
164
+ }
136
165
  // remove element only if was created dynamically
137
166
  if($popup && !settings.preserve) {
138
167
  module.removePopup();
@@ -141,9 +170,9 @@ $.fn.popup = function(parameters) {
141
170
  clearTimeout(module.hideTimer);
142
171
  clearTimeout(module.showTimer);
143
172
  // remove events
144
- $window.off(elementNamespace);
173
+ module.unbind.close();
174
+ module.unbind.events();
145
175
  $module
146
- .off(eventNamespace)
147
176
  .removeData(moduleNamespace)
148
177
  ;
149
178
  },
@@ -156,7 +185,9 @@ $.fn.popup = function(parameters) {
156
185
  : settings.delay
157
186
  ;
158
187
  clearTimeout(module.hideTimer);
159
- module.showTimer = setTimeout(module.show, delay);
188
+ if(!openedWithTouch) {
189
+ module.showTimer = setTimeout(module.show, delay);
190
+ }
160
191
  },
161
192
  end: function() {
162
193
  var
@@ -169,16 +200,33 @@ $.fn.popup = function(parameters) {
169
200
  },
170
201
  touchstart: function(event) {
171
202
  openedWithTouch = true;
172
- module.event.start();
203
+ module.show();
173
204
  },
174
205
  resize: function() {
175
206
  if( module.is.visible() ) {
176
207
  module.set.position();
177
208
  }
178
209
  },
210
+ documentChanged: function(mutations) {
211
+ [].forEach.call(mutations, function(mutation) {
212
+ if(mutation.removedNodes) {
213
+ [].forEach.call(mutation.removedNodes, function(node) {
214
+ if(node == element || $(node).find(element).length > 0) {
215
+ module.debug('Element removed from DOM, tearing down events');
216
+ module.destroy();
217
+ }
218
+ });
219
+ }
220
+ });
221
+ },
179
222
  hideGracefully: function(event) {
223
+ var
224
+ $target = $(event.target),
225
+ isInDOM = $.contains(document.documentElement, event.target),
226
+ inPopup = ($target.closest(selector.popup).length > 0)
227
+ ;
180
228
  // don't close on clicks inside popup
181
- if(event && $(event.target).closest(selector.popup).length === 0) {
229
+ if(event && !inPopup && isInDOM) {
182
230
  module.debug('Click occurred outside popup hiding popup');
183
231
  module.hide();
184
232
  }
@@ -192,7 +240,6 @@ $.fn.popup = function(parameters) {
192
240
  create: function() {
193
241
  var
194
242
  html = module.get.html(),
195
- variation = module.get.variation(),
196
243
  title = module.get.title(),
197
244
  content = module.get.content()
198
245
  ;
@@ -207,15 +254,9 @@ $.fn.popup = function(parameters) {
207
254
  }
208
255
  $popup = $('<div/>')
209
256
  .addClass(className.popup)
210
- .addClass(variation)
211
257
  .data(metadata.activator, $module)
212
258
  .html(html)
213
259
  ;
214
- if(variation) {
215
- $popup
216
- .addClass(variation)
217
- ;
218
- }
219
260
  if(settings.inline) {
220
261
  module.verbose('Inserting popup element inline', $popup);
221
262
  $popup
@@ -229,6 +270,8 @@ $.fn.popup = function(parameters) {
229
270
  ;
230
271
  }
231
272
  module.refresh();
273
+ module.set.variation();
274
+
232
275
  if(settings.hoverable) {
233
276
  module.bind.popup();
234
277
  }
@@ -237,7 +280,7 @@ $.fn.popup = function(parameters) {
237
280
  else if($target.next(selector.popup).length !== 0) {
238
281
  module.verbose('Pre-existing popup found');
239
282
  settings.inline = true;
240
- settings.popups = $target.next(selector.popup).data(metadata.activator, $module);
283
+ settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
241
284
  module.refresh();
242
285
  if(settings.hoverable) {
243
286
  module.bind.popup();
@@ -257,7 +300,7 @@ $.fn.popup = function(parameters) {
257
300
  },
258
301
 
259
302
  createID: function() {
260
- id = (Math.random().toString(16) + '000000000').substr(2,8);
303
+ id = (Math.random().toString(16) + '000000000').substr(2, 8);
261
304
  elementNamespace = '.' + id;
262
305
  module.verbose('Creating unique id for element', id);
263
306
  },
@@ -279,7 +322,6 @@ $.fn.popup = function(parameters) {
279
322
  show: function(callback) {
280
323
  callback = callback || function(){};
281
324
  module.debug('Showing pop-up', settings.transition);
282
-
283
325
  if(module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) {
284
326
  if( !module.exists() ) {
285
327
  module.create();
@@ -322,7 +364,7 @@ $.fn.popup = function(parameters) {
322
364
  .each(function() {
323
365
  $(this)
324
366
  .data(metadata.activator)
325
- .popup('hide')
367
+ .popup('hide')
326
368
  ;
327
369
  })
328
370
  ;
@@ -343,12 +385,12 @@ $.fn.popup = function(parameters) {
343
385
  },
344
386
 
345
387
  removePopup: function() {
346
- module.debug('Removing popup', $popup);
347
388
  if( module.has.popup() && !settings.popup) {
389
+ module.debug('Removing popup', $popup);
348
390
  $popup.remove();
349
391
  $popup = undefined;
392
+ settings.onRemove.call($popup, element);
350
393
  }
351
- settings.onRemove.call($popup, element);
352
394
  },
353
395
 
354
396
  save: {
@@ -371,6 +413,11 @@ $.fn.popup = function(parameters) {
371
413
  return true;
372
414
  }
373
415
  },
416
+ supports: {
417
+ svg: function() {
418
+ return (typeof SVGGraphicsElement === undefined);
419
+ }
420
+ },
374
421
  animate: {
375
422
  show: function(callback) {
376
423
  callback = $.isFunction(callback) ? callback : function(){};
@@ -398,8 +445,8 @@ $.fn.popup = function(parameters) {
398
445
  hide: function(callback) {
399
446
  callback = $.isFunction(callback) ? callback : function(){};
400
447
  module.debug('Hiding pop-up');
401
- if(settings.onShow.call($popup, element) === false) {
402
- module.debug('onShow callback returned false, cancelling popup animation');
448
+ if(settings.onHide.call($popup, element) === false) {
449
+ module.debug('onHide callback returned false, cancelling popup animation');
403
450
  return;
404
451
  }
405
452
  if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
@@ -424,6 +471,12 @@ $.fn.popup = function(parameters) {
424
471
  }
425
472
  },
426
473
 
474
+ change: {
475
+ content: function(html) {
476
+ $popup.html(html);
477
+ }
478
+ },
479
+
427
480
  get: {
428
481
  html: function() {
429
482
  $module.removeData(metadata.html);
@@ -441,13 +494,26 @@ $.fn.popup = function(parameters) {
441
494
  $module.removeData(metadata.variation);
442
495
  return $module.data(metadata.variation) || settings.variation;
443
496
  },
497
+ popup: function() {
498
+ return $popup;
499
+ },
500
+ popupOffset: function() {
501
+ return $popup.offset();
502
+ },
444
503
  calculations: function() {
445
504
  var
446
- targetElement = $target[0],
447
- targetPosition = (settings.inline || settings.popup)
505
+ targetElement = $target[0],
506
+ isWindow = ($boundary[0] == window),
507
+ targetPosition = (settings.inline || (settings.popup && settings.movePopup))
448
508
  ? $target.position()
449
509
  : $target.offset(),
450
- calculations = {},
510
+ screenPosition = (isWindow)
511
+ ? { top: 0, left: 0 }
512
+ : $boundary.offset(),
513
+ calculations = {},
514
+ scroll = (isWindow)
515
+ ? { top: $window.scrollTop(), left: $window.scrollLeft() }
516
+ : { top: 0, left: 0},
451
517
  screen
452
518
  ;
453
519
  calculations = {
@@ -472,15 +538,25 @@ $.fn.popup = function(parameters) {
472
538
  },
473
539
  // screen boundaries
474
540
  screen : {
541
+ top : screenPosition.top,
542
+ left : screenPosition.left,
475
543
  scroll: {
476
- top : $window.scrollTop(),
477
- left : $window.scrollLeft()
544
+ top : scroll.top,
545
+ left : scroll.left
478
546
  },
479
- width : $window.width(),
480
- height : $window.height()
547
+ width : $boundary.width(),
548
+ height : $boundary.height()
481
549
  }
482
550
  };
483
551
 
552
+ // add in container calcs if fluid
553
+ if( settings.setFluidWidth && module.is.fluid() ) {
554
+ calculations.container = {
555
+ width: $popup.parent().outerWidth()
556
+ };
557
+ calculations.popup.width = calculations.container.width;
558
+ }
559
+
484
560
  // add in margins if inline
485
561
  calculations.target.margin.top = (settings.inline)
486
562
  ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-top'), 10)
@@ -489,16 +565,16 @@ $.fn.popup = function(parameters) {
489
565
  calculations.target.margin.left = (settings.inline)
490
566
  ? module.is.rtl()
491
567
  ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-right'), 10)
492
- : parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-left') , 10)
568
+ : parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-left'), 10)
493
569
  : 0
494
570
  ;
495
571
  // calculate screen boundaries
496
572
  screen = calculations.screen;
497
573
  calculations.boundary = {
498
- top : screen.scroll.top,
499
- bottom : screen.scroll.top + screen.height,
500
- left : screen.scroll.left,
501
- right : screen.scroll.left + screen.width
574
+ top : screen.top + screen.scroll.top,
575
+ bottom : screen.top + screen.scroll.top + screen.height,
576
+ left : screen.left + screen.scroll.left,
577
+ right : screen.left + screen.scroll.left + screen.width
502
578
  };
503
579
  return calculations;
504
580
  },
@@ -526,6 +602,29 @@ $.fn.popup = function(parameters) {
526
602
  }
527
603
  return false;
528
604
  },
605
+ distanceFromBoundary: function(offset, calculations) {
606
+ var
607
+ distanceFromBoundary = {},
608
+ popup,
609
+ boundary
610
+ ;
611
+ calculations = calculations || module.get.calculations();
612
+
613
+ // shorthand
614
+ popup = calculations.popup;
615
+ boundary = calculations.boundary;
616
+
617
+ if(offset) {
618
+ distanceFromBoundary = {
619
+ top : (offset.top - boundary.top),
620
+ left : (offset.left - boundary.left),
621
+ right : (boundary.right - (offset.left + popup.width) ),
622
+ bottom : (boundary.bottom - (offset.top + popup.height) )
623
+ };
624
+ module.verbose('Distance from boundaries determined', offset, distanceFromBoundary);
625
+ }
626
+ return distanceFromBoundary;
627
+ },
529
628
  offsetParent: function($target) {
530
629
  var
531
630
  element = ($target !== undefined)
@@ -553,40 +652,6 @@ $.fn.popup = function(parameters) {
553
652
  : $()
554
653
  ;
555
654
  },
556
- offstagePosition: function(position, calculations) {
557
- var
558
- offset = $popup.offset(),
559
- offstage = {},
560
- offstagePositions = [],
561
- popup,
562
- boundary
563
- ;
564
- position = position || false;
565
- calculations = calculations || module.get.calculations();
566
- // shorthand
567
- popup = calculations.popup;
568
- boundary = calculations.boundary;
569
-
570
- if(offset && position) {
571
- offstage = {
572
- top : (offset.top < boundary.top),
573
- bottom : (offset.top + popup.height > boundary.bottom),
574
- right : (offset.left + popup.width > boundary.right),
575
- left : (offset.left < boundary.left)
576
- };
577
- module.verbose('Offstage positions determined', offset, offstage);
578
- }
579
- // return only boundaries that have been surpassed
580
- $.each(offstage, function(direction, isOffstage) {
581
- if(isOffstage) {
582
- offstagePositions.push(direction);
583
- }
584
- });
585
- return (offstagePositions.length > 0)
586
- ? offstagePositions.join(' ')
587
- : false
588
- ;
589
- },
590
655
  positions: function() {
591
656
  return {
592
657
  'top left' : false,
@@ -672,10 +737,11 @@ $.fn.popup = function(parameters) {
672
737
  target,
673
738
  popup,
674
739
  parent,
675
- computedPosition,
676
740
  positioning,
677
- offstagePosition
741
+ popupOffset,
742
+ distanceFromBoundary
678
743
  ;
744
+
679
745
  calculations = calculations || module.get.calculations();
680
746
  position = position || $module.data(metadata.position) || settings.position;
681
747
 
@@ -687,7 +753,7 @@ $.fn.popup = function(parameters) {
687
753
  popup = calculations.popup;
688
754
  parent = calculations.parent;
689
755
 
690
- if(target.top === 0 && target.left === 0) {
756
+ if(target.width === 0 && target.height === 0 && !module.is.svg(target.element)) {
691
757
  module.debug('Popup target is hidden, no action taken');
692
758
  return false;
693
759
  }
@@ -720,8 +786,8 @@ $.fn.popup = function(parameters) {
720
786
  module.debug('RTL: Popup position updated', position);
721
787
  }
722
788
 
723
- if(searchDepth == settings.maxSearchDepth && settings.lastResort) {
724
- module.debug('Using "last resort" position to display', settings.lastResort);
789
+ // if last attempt use specified last resort position
790
+ if(searchDepth == settings.maxSearchDepth && typeof settings.lastResort === 'string') {
725
791
  position = settings.lastResort;
726
792
  }
727
793
 
@@ -804,12 +870,14 @@ $.fn.popup = function(parameters) {
804
870
  .addClass(position)
805
871
  .addClass(className.loading)
806
872
  ;
807
- // check if is offstage
808
- offstagePosition = module.get.offstagePosition(position, calculations);
809
873
 
810
- // recursively find new positioning
811
- if(offstagePosition) {
812
- module.debug('Popup cant fit into viewport', position, offstagePosition);
874
+ popupOffset = module.get.popupOffset();
875
+
876
+ // see if any boundaries are surpassed with this tentative position
877
+ distanceFromBoundary = module.get.distanceFromBoundary(popupOffset, calculations);
878
+
879
+ if( module.is.offstage(distanceFromBoundary, position) ) {
880
+ module.debug('Position is outside viewport', position);
813
881
  if(searchDepth < settings.maxSearchDepth) {
814
882
  searchDepth++;
815
883
  position = module.get.nextPosition(position);
@@ -819,27 +887,41 @@ $.fn.popup = function(parameters) {
819
887
  : false
820
888
  ;
821
889
  }
822
- else if(!settings.lastResort) {
823
- module.debug('Popup could not find a position in view', $popup);
824
- // module.error(error.cannotPlace, element);
825
- module.remove.attempts();
826
- module.remove.loading();
827
- module.reset();
828
- return false;
890
+ else {
891
+ if(settings.lastResort) {
892
+ module.debug('No position found, showing with last position');
893
+ }
894
+ else {
895
+ module.debug('Popup could not find a position to display', $popup);
896
+ module.error(error.cannotPlace, element);
897
+ module.remove.attempts();
898
+ module.remove.loading();
899
+ module.reset();
900
+ settings.onUnplaceable.call($popup, element);
901
+ return false;
902
+ }
829
903
  }
830
904
  }
831
-
832
905
  module.debug('Position is on stage', position);
833
906
  module.remove.attempts();
834
- module.set.fluidWidth(calculations);
835
907
  module.remove.loading();
908
+ if( settings.setFluidWidth && module.is.fluid() ) {
909
+ module.set.fluidWidth(calculations);
910
+ }
836
911
  return true;
837
912
  },
838
913
 
839
914
  fluidWidth: function(calculations) {
840
915
  calculations = calculations || module.get.calculations();
841
- if( settings.setFluidWidth && $popup.hasClass(className.fluid) ) {
842
- $popup.css('width', calculations.parent.width);
916
+ module.debug('Automatically setting element width to parent width', calculations.parent.width);
917
+ $popup.css('width', calculations.container.width);
918
+ },
919
+
920
+ variation: function(variation) {
921
+ variation = variation || module.get.variation();
922
+ if(variation && module.has.popup() ) {
923
+ module.verbose('Adding variation to popup', variation);
924
+ $popup.addClass(variation);
843
925
  }
844
926
  },
845
927
 
@@ -852,6 +934,13 @@ $.fn.popup = function(parameters) {
852
934
  loading: function() {
853
935
  $popup.removeClass(className.loading);
854
936
  },
937
+ variation: function(variation) {
938
+ variation = variation || module.get.variation();
939
+ if(variation) {
940
+ module.verbose('Removing variation', variation);
941
+ $popup.removeClass(variation);
942
+ }
943
+ },
855
944
  visible: function() {
856
945
  $module.removeClass(className.visible);
857
946
  },
@@ -875,7 +964,7 @@ $.fn.popup = function(parameters) {
875
964
  .on('touchstart' + eventNamespace, module.event.touchstart)
876
965
  ;
877
966
  }
878
- else if( module.get.startEvent() ) {
967
+ if( module.get.startEvent() ) {
879
968
  $module
880
969
  .on(module.get.startEvent() + eventNamespace, module.event.start)
881
970
  .on(module.get.endEvent() + eventNamespace, module.event.end)
@@ -896,11 +985,8 @@ $.fn.popup = function(parameters) {
896
985
  }
897
986
  },
898
987
  close: function() {
899
- if(settings.hideOnScroll === true || (settings.hideOnScroll == 'auto' && settings.on != 'click')) {
900
- $document
901
- .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully)
902
- ;
903
- $context
988
+ if(settings.hideOnScroll === true || (settings.hideOnScroll == 'auto' && settings.on != 'click')) {
989
+ $scrollContext
904
990
  .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully)
905
991
  ;
906
992
  }
@@ -926,28 +1012,22 @@ $.fn.popup = function(parameters) {
926
1012
  },
927
1013
 
928
1014
  unbind: {
1015
+ events: function() {
1016
+ $window
1017
+ .off(elementNamespace)
1018
+ ;
1019
+ $module
1020
+ .off(eventNamespace)
1021
+ ;
1022
+ },
929
1023
  close: function() {
930
- if(settings.hideOnScroll === true || (settings.hideOnScroll == 'auto' && settings.on != 'click')) {
931
- $document
932
- .off('scroll' + elementNamespace, module.hide)
933
- ;
934
- $context
935
- .off('scroll' + elementNamespace, module.hide)
936
- ;
937
- }
938
- if(settings.on == 'hover' && openedWithTouch) {
939
- $document
940
- .off('touchstart' + elementNamespace)
941
- ;
942
- openedWithTouch = false;
943
- }
944
- if(settings.on == 'click' && settings.closable) {
945
- module.verbose('Removing close event from document');
946
- $document
947
- .off('click' + elementNamespace)
948
- ;
949
- }
950
- }
1024
+ $document
1025
+ .off(elementNamespace)
1026
+ ;
1027
+ $scrollContext
1028
+ .off(elementNamespace)
1029
+ ;
1030
+ },
951
1031
  },
952
1032
 
953
1033
  has: {
@@ -957,14 +1037,38 @@ $.fn.popup = function(parameters) {
957
1037
  },
958
1038
 
959
1039
  is: {
1040
+ offstage: function(distanceFromBoundary, position) {
1041
+ var
1042
+ offstage = []
1043
+ ;
1044
+ // return boundaries that have been surpassed
1045
+ $.each(distanceFromBoundary, function(direction, distance) {
1046
+ if(distance < -settings.jitter) {
1047
+ module.debug('Position exceeds allowable distance from edge', direction, distance, position);
1048
+ offstage.push(direction);
1049
+ }
1050
+ });
1051
+ if(offstage.length > 0) {
1052
+ return true;
1053
+ }
1054
+ else {
1055
+ return false;
1056
+ }
1057
+ },
1058
+ svg: function(element) {
1059
+ return module.supports.svg() && (element instanceof SVGGraphicsElement);
1060
+ },
960
1061
  active: function() {
961
1062
  return $module.hasClass(className.active);
962
1063
  },
963
1064
  animating: function() {
964
- return ( $popup && $popup.hasClass(className.animating) );
1065
+ return ($popup !== undefined && $popup.hasClass(className.animating) );
1066
+ },
1067
+ fluid: function() {
1068
+ return ($popup !== undefined && $popup.hasClass(className.fluid));
965
1069
  },
966
1070
  visible: function() {
967
- return $popup && $popup.hasClass(className.visible);
1071
+ return ($popup !== undefined && $popup.hasClass(className.visible));
968
1072
  },
969
1073
  dropdown: function() {
970
1074
  return $module.hasClass(className.dropdown);
@@ -1014,7 +1118,7 @@ $.fn.popup = function(parameters) {
1014
1118
  }
1015
1119
  },
1016
1120
  debug: function() {
1017
- if(settings.debug) {
1121
+ if(!settings.silent && settings.debug) {
1018
1122
  if(settings.performance) {
1019
1123
  module.performance.log(arguments);
1020
1124
  }
@@ -1025,7 +1129,7 @@ $.fn.popup = function(parameters) {
1025
1129
  }
1026
1130
  },
1027
1131
  verbose: function() {
1028
- if(settings.verbose && settings.debug) {
1132
+ if(!settings.silent && settings.verbose && settings.debug) {
1029
1133
  if(settings.performance) {
1030
1134
  module.performance.log(arguments);
1031
1135
  }
@@ -1036,8 +1140,10 @@ $.fn.popup = function(parameters) {
1036
1140
  }
1037
1141
  },
1038
1142
  error: function() {
1039
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
1040
- module.error.apply(console, arguments);
1143
+ if(!settings.silent) {
1144
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
1145
+ module.error.apply(console, arguments);
1146
+ }
1041
1147
  },
1042
1148
  performance: {
1043
1149
  log: function(message) {
@@ -1168,43 +1274,53 @@ $.fn.popup = function(parameters) {
1168
1274
 
1169
1275
  $.fn.popup.settings = {
1170
1276
 
1171
- name : 'Popup',
1277
+ name : 'Popup',
1172
1278
 
1173
1279
  // module settings
1174
- debug : false,
1175
- verbose : false,
1176
- performance : true,
1177
- namespace : 'popup',
1280
+ silent : false,
1281
+ debug : false,
1282
+ verbose : false,
1283
+ performance : true,
1284
+ namespace : 'popup',
1285
+
1286
+ // whether it should use dom mutation observers
1287
+ observeChanges : true,
1178
1288
 
1179
1289
  // callback only when element added to dom
1180
- onCreate : function(){},
1290
+ onCreate : function(){},
1181
1291
 
1182
1292
  // callback before element removed from dom
1183
- onRemove : function(){},
1293
+ onRemove : function(){},
1184
1294
 
1185
1295
  // callback before show animation
1186
- onShow : function(){},
1296
+ onShow : function(){},
1187
1297
 
1188
1298
  // callback after show animation
1189
- onVisible : function(){},
1299
+ onVisible : function(){},
1190
1300
 
1191
1301
  // callback before hide animation
1192
- onHide : function(){},
1302
+ onHide : function(){},
1303
+
1304
+ // callback when popup cannot be positioned in visible screen
1305
+ onUnplaceable : function(){},
1193
1306
 
1194
1307
  // callback after hide animation
1195
- onHidden : function(){},
1308
+ onHidden : function(){},
1196
1309
 
1197
1310
  // when to show popup
1198
- on : 'hover',
1311
+ on : 'hover',
1312
+
1313
+ // element to use to determine if popup is out of boundary
1314
+ boundary : window,
1199
1315
 
1200
1316
  // whether to add touchstart events when using hover
1201
1317
  addTouchEvents : true,
1202
1318
 
1203
1319
  // default position relative to element
1204
- position : 'top left',
1320
+ position : 'top left',
1205
1321
 
1206
1322
  // name of variation to use
1207
- variation : '',
1323
+ variation : '',
1208
1324
 
1209
1325
  // whether popup should be moved to context
1210
1326
  movePopup : true,
@@ -1219,37 +1335,40 @@ $.fn.popup.settings = {
1219
1335
  inline : false,
1220
1336
 
1221
1337
  // popup should be removed from page on hide
1222
- preserve : true,
1338
+ preserve : false,
1223
1339
 
1224
1340
  // popup should not close when being hovered on
1225
1341
  hoverable : false,
1226
1342
 
1227
1343
  // explicitly set content
1228
- content : false,
1344
+ content : false,
1229
1345
 
1230
1346
  // explicitly set html
1231
- html : false,
1347
+ html : false,
1232
1348
 
1233
1349
  // explicitly set title
1234
- title : false,
1350
+ title : false,
1235
1351
 
1236
1352
  // whether automatically close on clickaway when on click
1237
- closable : true,
1353
+ closable : true,
1238
1354
 
1239
1355
  // automatically hide on scroll
1240
- hideOnScroll : 'auto',
1356
+ hideOnScroll : 'auto',
1241
1357
 
1242
1358
  // hide other popups on show
1243
- exclusive : false,
1359
+ exclusive : false,
1244
1360
 
1245
1361
  // context to attach popups
1246
- context : 'body',
1362
+ context : 'body',
1363
+
1364
+ // context for binding scroll events
1365
+ scrollContext : window,
1247
1366
 
1248
1367
  // position to prefer when calculating new position
1249
- prefer : 'opposite',
1368
+ prefer : 'opposite',
1250
1369
 
1251
1370
  // specify position to appear even if it doesn't fit
1252
- lastResort : false,
1371
+ lastResort : false,
1253
1372
 
1254
1373
  // delay used to prevent accidental refiring of animations due to user error
1255
1374
  delay : {
@@ -1267,15 +1386,18 @@ $.fn.popup.settings = {
1267
1386
  // distance away from activating element in px
1268
1387
  distanceAway : 0,
1269
1388
 
1389
+ // number of pixels an element is allowed to be "offstage" for a position to be chosen (allows for rounding)
1390
+ jitter : 2,
1391
+
1270
1392
  // offset on aligning axis from calculated position
1271
1393
  offset : 0,
1272
1394
 
1273
1395
  // maximum times to look for a position before failing (9 positions total)
1274
- maxSearchDepth : 20,
1396
+ maxSearchDepth : 15,
1275
1397
 
1276
1398
  error: {
1277
1399
  invalidPosition : 'The position you specified is not a valid position',
1278
- cannotPlace : 'No visible position could be found for the popup',
1400
+ cannotPlace : 'Popup does not fit within the boundaries of the viewport',
1279
1401
  method : 'The method you called is not defined.',
1280
1402
  noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>',
1281
1403
  notFound : 'The target or popup you specified does not exist on the page'
@@ -1350,4 +1472,4 @@ $.fn.popup.settings = {
1350
1472
  };
1351
1473
 
1352
1474
 
1353
- })( jQuery, window , document );
1475
+ })( jQuery, window, document );