fomantic-ui 2.9.0-beta.26 → 2.9.0-beta.262

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 (285) hide show
  1. package/.all-contributorsrc +206 -3
  2. package/.github/workflows/ci.yml +4 -4
  3. package/.github/workflows/nightly.yml +4 -4
  4. package/.github/workflows/release.yml +30 -0
  5. package/CONTRIBUTORS.md +75 -37
  6. package/README.md +8 -8
  7. package/dist/components/accordion.css +162 -26
  8. package/dist/components/accordion.js +1 -1
  9. package/dist/components/accordion.min.css +2 -2
  10. package/dist/components/accordion.min.js +2 -2
  11. package/dist/components/ad.css +1 -1
  12. package/dist/components/ad.min.css +1 -1
  13. package/dist/components/api.js +34 -30
  14. package/dist/components/api.min.js +3 -3
  15. package/dist/components/breadcrumb.css +1 -1
  16. package/dist/components/breadcrumb.min.css +1 -1
  17. package/dist/components/button.css +176 -134
  18. package/dist/components/button.min.css +2 -2
  19. package/dist/components/calendar.css +18 -1
  20. package/dist/components/calendar.js +10 -9
  21. package/dist/components/calendar.min.css +2 -2
  22. package/dist/components/calendar.min.js +3 -3
  23. package/dist/components/card.css +26 -19
  24. package/dist/components/card.min.css +2 -2
  25. package/dist/components/checkbox.css +2 -1
  26. package/dist/components/checkbox.js +17 -11
  27. package/dist/components/checkbox.min.css +2 -2
  28. package/dist/components/checkbox.min.js +3 -3
  29. package/dist/components/comment.css +11 -11
  30. package/dist/components/comment.min.css +1 -1
  31. package/dist/components/container.css +94 -1
  32. package/dist/components/container.min.css +2 -2
  33. package/dist/components/dimmer.css +28 -14
  34. package/dist/components/dimmer.js +11 -5
  35. package/dist/components/dimmer.min.css +2 -2
  36. package/dist/components/dimmer.min.js +3 -3
  37. package/dist/components/divider.css +1 -1
  38. package/dist/components/divider.min.css +1 -1
  39. package/dist/components/dropdown.css +49 -13
  40. package/dist/components/dropdown.js +66 -39
  41. package/dist/components/dropdown.min.css +2 -2
  42. package/dist/components/dropdown.min.js +3 -3
  43. package/dist/components/embed.css +1 -1
  44. package/dist/components/embed.js +1 -1
  45. package/dist/components/embed.min.css +1 -1
  46. package/dist/components/embed.min.js +2 -2
  47. package/dist/components/emoji.css +10147 -8139
  48. package/dist/components/emoji.min.css +1 -1
  49. package/dist/components/feed.css +28 -28
  50. package/dist/components/feed.min.css +2 -2
  51. package/dist/components/flag.css +734 -625
  52. package/dist/components/flag.min.css +2 -2
  53. package/dist/components/form.css +118 -55
  54. package/dist/components/form.js +38 -29
  55. package/dist/components/form.min.css +2 -2
  56. package/dist/components/form.min.js +3 -3
  57. package/dist/components/grid.css +11 -8
  58. package/dist/components/grid.min.css +2 -2
  59. package/dist/components/header.css +3 -1
  60. package/dist/components/header.min.css +2 -2
  61. package/dist/components/icon.css +126 -47
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +1 -1
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +742 -17
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +13 -13
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +1 -1
  70. package/dist/components/label.min.css +1 -1
  71. package/dist/components/list.css +1 -1
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +1 -1
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +29 -5
  76. package/dist/components/menu.min.css +1 -1
  77. package/dist/components/message.css +41 -41
  78. package/dist/components/message.min.css +2 -2
  79. package/dist/components/modal.css +13 -1
  80. package/dist/components/modal.js +127 -49
  81. package/dist/components/modal.min.css +2 -2
  82. package/dist/components/modal.min.js +3 -3
  83. package/dist/components/nag.css +1 -1
  84. package/dist/components/nag.js +1 -1
  85. package/dist/components/nag.min.css +1 -1
  86. package/dist/components/nag.min.js +2 -2
  87. package/dist/components/placeholder.css +1 -1
  88. package/dist/components/placeholder.min.css +1 -1
  89. package/dist/components/popup.css +1 -1
  90. package/dist/components/popup.js +2 -2
  91. package/dist/components/popup.min.css +1 -1
  92. package/dist/components/popup.min.js +3 -3
  93. package/dist/components/progress.css +1 -1
  94. package/dist/components/progress.js +4 -1
  95. package/dist/components/progress.min.css +1 -1
  96. package/dist/components/progress.min.js +3 -3
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +1 -1
  100. package/dist/components/rating.js +1 -1
  101. package/dist/components/rating.min.css +1 -1
  102. package/dist/components/rating.min.js +2 -2
  103. package/dist/components/reset.css +1 -1
  104. package/dist/components/reset.min.css +1 -1
  105. package/dist/components/reveal.css +1 -1
  106. package/dist/components/reveal.min.css +1 -1
  107. package/dist/components/search.css +1 -1
  108. package/dist/components/search.js +2 -2
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +3 -3
  111. package/dist/components/segment.css +91 -7
  112. package/dist/components/segment.min.css +2 -2
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +3 -3
  115. package/dist/components/shape.min.css +1 -1
  116. package/dist/components/shape.min.js +3 -3
  117. package/dist/components/sidebar.css +4 -2
  118. package/dist/components/sidebar.js +8 -6
  119. package/dist/components/sidebar.min.css +2 -2
  120. package/dist/components/sidebar.min.js +3 -3
  121. package/dist/components/site.css +61 -39
  122. package/dist/components/site.js +1 -1
  123. package/dist/components/site.min.css +2 -2
  124. package/dist/components/site.min.js +2 -2
  125. package/dist/components/slider.js +1 -1
  126. package/dist/components/slider.min.js +2 -2
  127. package/dist/components/state.js +1 -1
  128. package/dist/components/state.min.js +2 -2
  129. package/dist/components/statistic.css +1 -1
  130. package/dist/components/statistic.min.css +1 -1
  131. package/dist/components/step.css +4 -4
  132. package/dist/components/step.min.css +2 -2
  133. package/dist/components/sticky.css +1 -1
  134. package/dist/components/sticky.js +1 -1
  135. package/dist/components/sticky.min.css +1 -1
  136. package/dist/components/sticky.min.js +2 -2
  137. package/dist/components/tab.css +1 -1
  138. package/dist/components/tab.js +23 -5
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +3 -3
  141. package/dist/components/table.css +1168 -26
  142. package/dist/components/table.min.css +2 -2
  143. package/dist/components/text.css +1 -1
  144. package/dist/components/text.min.css +1 -1
  145. package/dist/components/toast.css +39 -1
  146. package/dist/components/toast.js +56 -28
  147. package/dist/components/toast.min.css +2 -2
  148. package/dist/components/toast.min.js +3 -3
  149. package/dist/components/transition.css +1 -1
  150. package/dist/components/transition.js +21 -16
  151. package/dist/components/transition.min.css +1 -1
  152. package/dist/components/transition.min.js +3 -3
  153. package/dist/components/visibility.js +1 -1
  154. package/dist/components/visibility.min.js +2 -2
  155. package/dist/semantic.css +21916 -16238
  156. package/dist/semantic.js +433 -246
  157. package/dist/semantic.min.css +3 -3
  158. package/dist/semantic.min.js +3 -3
  159. package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  160. package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
  161. package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  162. package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  163. package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  164. package/dist/themes/default/assets/fonts/icons.eot +0 -0
  165. package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
  166. package/dist/themes/default/assets/fonts/icons.ttf +0 -0
  167. package/dist/themes/default/assets/fonts/icons.woff +0 -0
  168. package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  169. package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  170. package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
  171. package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  172. package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  173. package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  174. package/examples/assets/library/iframe-content.js +8 -8
  175. package/examples/assets/library/iframe.js +3 -3
  176. package/package.json +10 -9
  177. package/src/definitions/behaviors/api.js +33 -29
  178. package/src/definitions/behaviors/form.js +37 -28
  179. package/src/definitions/collections/form.less +204 -140
  180. package/src/definitions/collections/grid.less +716 -680
  181. package/src/definitions/collections/menu.less +173 -126
  182. package/src/definitions/collections/message.less +48 -46
  183. package/src/definitions/collections/table.less +849 -262
  184. package/src/definitions/elements/button.less +586 -449
  185. package/src/definitions/elements/container.less +145 -8
  186. package/src/definitions/elements/emoji.less +15 -9
  187. package/src/definitions/elements/flag.less +7 -17
  188. package/src/definitions/elements/header.less +44 -35
  189. package/src/definitions/elements/icon.less +38 -31
  190. package/src/definitions/elements/input.less +264 -22
  191. package/src/definitions/elements/label.less +92 -91
  192. package/src/definitions/elements/list.less +55 -45
  193. package/src/definitions/elements/loader.less +30 -29
  194. package/src/definitions/elements/segment.less +147 -28
  195. package/src/definitions/elements/step.less +52 -48
  196. package/src/definitions/elements/text.less +17 -15
  197. package/src/definitions/globals/site.less +23 -2
  198. package/src/definitions/modules/accordion.less +175 -24
  199. package/src/definitions/modules/calendar.js +9 -8
  200. package/src/definitions/modules/calendar.less +20 -0
  201. package/src/definitions/modules/checkbox.js +16 -10
  202. package/src/definitions/modules/checkbox.less +34 -178
  203. package/src/definitions/modules/dimmer.js +10 -4
  204. package/src/definitions/modules/dimmer.less +21 -8
  205. package/src/definitions/modules/dropdown.js +65 -38
  206. package/src/definitions/modules/dropdown.less +145 -94
  207. package/src/definitions/modules/modal.js +126 -48
  208. package/src/definitions/modules/modal.less +12 -0
  209. package/src/definitions/modules/nag.less +20 -19
  210. package/src/definitions/modules/popup.js +1 -1
  211. package/src/definitions/modules/progress.js +3 -0
  212. package/src/definitions/modules/progress.less +19 -18
  213. package/src/definitions/modules/rating.less +35 -34
  214. package/src/definitions/modules/search.js +1 -1
  215. package/src/definitions/modules/search.less +32 -16
  216. package/src/definitions/modules/shape.js +2 -2
  217. package/src/definitions/modules/sidebar.js +7 -5
  218. package/src/definitions/modules/sidebar.less +33 -19
  219. package/src/definitions/modules/slider.less +39 -38
  220. package/src/definitions/modules/tab.js +22 -4
  221. package/src/definitions/modules/toast.js +55 -27
  222. package/src/definitions/modules/toast.less +48 -16
  223. package/src/definitions/modules/transition.js +20 -15
  224. package/src/definitions/views/card.less +402 -361
  225. package/src/definitions/views/comment.less +92 -81
  226. package/src/definitions/views/feed.less +164 -144
  227. package/src/definitions/views/item.less +249 -196
  228. package/src/definitions/views/statistic.less +90 -88
  229. package/src/themes/bookish/elements/header.overrides +1 -1
  230. package/src/themes/chubby/elements/button.overrides +1 -1
  231. package/src/themes/chubby/elements/header.overrides +1 -1
  232. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  233. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  234. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  235. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  236. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  237. package/src/themes/default/assets/fonts/icons.eot +0 -0
  238. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  239. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  240. package/src/themes/default/assets/fonts/icons.woff +0 -0
  241. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  242. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  243. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  244. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  245. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  246. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  247. package/src/themes/default/collections/form.variables +4 -0
  248. package/src/themes/default/collections/menu.variables +6 -0
  249. package/src/themes/default/collections/table.variables +52 -0
  250. package/src/themes/default/elements/button.variables +7 -1
  251. package/src/themes/default/elements/container.variables +12 -0
  252. package/src/themes/default/elements/emoji.overrides +1734 -1232
  253. package/src/themes/default/elements/flag.overrides +1641 -986
  254. package/src/themes/default/elements/flag.variables +7 -5
  255. package/src/themes/default/elements/icon.overrides +75 -48
  256. package/src/themes/default/elements/icon.variables +1 -0
  257. package/src/themes/default/elements/input.variables +15 -0
  258. package/src/themes/default/elements/segment.variables +8 -0
  259. package/src/themes/default/elements/step.overrides +1 -1
  260. package/src/themes/default/globals/site.variables +6 -0
  261. package/src/themes/default/globals/variation.variables +139 -6
  262. package/src/themes/default/modules/accordion.variables +49 -2
  263. package/src/themes/default/modules/calendar.variables +3 -0
  264. package/src/themes/default/modules/checkbox.variables +5 -5
  265. package/src/themes/default/modules/dimmer.variables +1 -1
  266. package/src/themes/default/modules/dropdown.variables +4 -10
  267. package/src/themes/default/modules/modal.variables +13 -0
  268. package/src/themes/default/modules/toast.variables +3 -0
  269. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  270. package/src/themes/famfamfam/elements/flag.variables +13 -0
  271. package/src/themes/instagram/views/card.overrides +1 -1
  272. package/src/themes/joypixels/elements/emoji.overrides +1759 -1257
  273. package/src/themes/joypixels/elements/emoji.variables +1 -1
  274. package/src/themes/material/collections/menu.overrides +1 -1
  275. package/src/themes/material/elements/button.overrides +1 -1
  276. package/src/themes/material/elements/header.overrides +1 -1
  277. package/src/themes/material/globals/site.variables +0 -1
  278. package/src/themes/material/modules/dropdown.overrides +1 -1
  279. package/src/themes/material/modules/modal.overrides +1 -1
  280. package/src/themes/rtl/globals/site.overrides +1 -1
  281. package/src/themes/twitter/elements/emoji.overrides +1734 -1232
  282. package/tasks/build/css.js +6 -1
  283. package/tasks/config/project/install.js +11 -5
  284. package/tasks/install.js +1 -0
  285. package/test/helpers/sinon.js +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.26 - Dropdown
2
+ * # Fomantic-UI 2.9.0-beta.262 - Dropdown
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -123,7 +123,7 @@
123
123
  line-height: 1em;
124
124
  font-size: 1rem;
125
125
  color: rgba(0, 0, 0, 0.87);
126
- padding: 0.78571429rem 1.14285714rem !important;
126
+ padding: 0.78571429rem 1.14285714rem;
127
127
  text-transform: none;
128
128
  font-weight: normal;
129
129
  -webkit-box-shadow: none;
@@ -365,9 +365,15 @@
365
365
  .ui.dropdown.icon.button > .dropdown.icon {
366
366
  margin: 0;
367
367
  }
368
- .ui.button.dropdown .menu {
368
+ .ui.dropdown.button .menu {
369
369
  min-width: 100%;
370
370
  }
371
+ .ui.dropdown.button:not(.pointing):not(.floating).active {
372
+ border-radius: 0.28571429rem 0.28571429rem 0 0;
373
+ }
374
+ .ui.dropdown.button:not(.pointing):not(.floating) > .menu {
375
+ border-radius: 0 0 0.28571429rem 0.28571429rem;
376
+ }
371
377
 
372
378
 
373
379
  /*******************************
@@ -540,7 +546,7 @@ select.ui.dropdown {
540
546
  /* Menu Item */
541
547
  .ui.selection.dropdown .menu > .item {
542
548
  border-top: 1px solid #FAFAFA;
543
- padding: 0.78571429rem 1.14285714rem !important;
549
+ padding: 0.78571429rem 1.14285714rem;
544
550
  white-space: normal;
545
551
  word-wrap: normal;
546
552
  }
@@ -558,11 +564,13 @@ select.ui.dropdown {
558
564
  }
559
565
 
560
566
  /* Active */
567
+ .ui.selection.simple.dropdown:hover,
561
568
  .ui.selection.active.dropdown {
562
569
  border-color: #96C8DA;
563
570
  -webkit-box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15);
564
571
  box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15);
565
572
  }
573
+ .ui.selection.simple.dropdown:hover .menu,
566
574
  .ui.selection.active.dropdown .menu {
567
575
  border-color: #96C8DA;
568
576
  -webkit-box-shadow: 0 2px 3px 0 rgba(34, 36, 38, 0.15);
@@ -1301,7 +1309,6 @@ select.ui.dropdown {
1301
1309
  bottom: 100%;
1302
1310
  -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.08);
1303
1311
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.08);
1304
- border-radius: 0.28571429rem 0.28571429rem 0 0;
1305
1312
  }
1306
1313
 
1307
1314
  /* Upward Sub Menu */
@@ -1313,18 +1320,24 @@ select.ui.dropdown {
1313
1320
  /* Active Upward */
1314
1321
  .ui.simple.upward.active.dropdown,
1315
1322
  .ui.simple.upward.dropdown:hover {
1316
- border-radius: 0.28571429rem 0.28571429rem 0 0 !important;
1323
+ border-radius: 0 0 0.28571429rem 0.28571429rem;
1317
1324
  }
1325
+
1326
+ /* Button */
1318
1327
  .ui.upward.dropdown.button:not(.pointing):not(.floating).active {
1328
+ border-radius: 0 0 0.28571429rem 0.28571429rem;
1329
+ }
1330
+ .ui.upward.dropdown.button:not(.pointing):not(.floating) > .menu {
1319
1331
  border-radius: 0.28571429rem 0.28571429rem 0 0;
1320
1332
  }
1321
1333
 
1322
1334
  /* Selection */
1323
- .ui.upward.selection.dropdown .menu {
1335
+ .ui.ui.upward.selection.dropdown .menu {
1324
1336
  border-top-width: 1px !important;
1325
1337
  border-bottom-width: 0 !important;
1326
1338
  -webkit-box-shadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08);
1327
1339
  box-shadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08);
1340
+ border-radius: 0.28571429rem 0.28571429rem 0 0;
1328
1341
  }
1329
1342
  .ui.upward.selection.dropdown:hover {
1330
1343
  -webkit-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05);
@@ -1454,8 +1467,8 @@ select.ui.dropdown {
1454
1467
  }
1455
1468
 
1456
1469
  /*--------------
1457
- Columnar
1458
- ---------------*/
1470
+ Columnar
1471
+ ---------------*/
1459
1472
 
1460
1473
  .ui.column.dropdown > .menu {
1461
1474
  -ms-flex-wrap: wrap;
@@ -1499,14 +1512,23 @@ select.ui.dropdown {
1499
1512
  transition: opacity 0.1s ease;
1500
1513
  margin-top: 0 !important;
1501
1514
  }
1515
+ .ui.simple.dropdown .upward.menu {
1516
+ margin-bottom: 1.5em;
1517
+ }
1518
+ .ui.simple.selection.dropdown .upward.menu {
1519
+ margin-bottom: 2.5em;
1520
+ }
1521
+ .ui.menu:not(.vertical) .ui.simple.dropdown.item .upward.menu {
1522
+ margin-bottom: 2.8em;
1523
+ }
1502
1524
  .ui.simple.active.dropdown,
1503
1525
  .ui.simple.dropdown:hover {
1504
- border-bottom-left-radius: 0 !important;
1505
- border-bottom-right-radius: 0 !important;
1526
+ border-bottom-left-radius: 0;
1527
+ border-bottom-right-radius: 0;
1506
1528
  }
1507
1529
  .ui.simple.active.dropdown > .menu,
1508
1530
  .ui.simple.dropdown:hover > .menu {
1509
- overflow: visible;
1531
+ overflow: auto;
1510
1532
  width: auto;
1511
1533
  height: auto;
1512
1534
  top: 100%;
@@ -1514,7 +1536,7 @@ select.ui.dropdown {
1514
1536
  }
1515
1537
  .ui.simple.dropdown > .menu > .item:active > .menu,
1516
1538
  .ui.simple.dropdown .menu .item:hover > .menu {
1517
- overflow: visible;
1539
+ overflow: auto;
1518
1540
  width: auto;
1519
1541
  height: auto;
1520
1542
  top: 0 !important;
@@ -1893,6 +1915,8 @@ select.ui.dropdown {
1893
1915
  .ui.inverted.selection.visible.dropdown > .text:not(.default) {
1894
1916
  color: rgba(255, 255, 255, 0.9);
1895
1917
  }
1918
+ .ui.selection.simple.dropdown:hover .inverted.menu,
1919
+ .ui.inverted.selection.simple.dropdown:hover .menu,
1896
1920
  .ui.selection.active.dropdown .inverted.menu,
1897
1921
  .ui.inverted.selection.active.dropdown .menu,
1898
1922
  .ui.inverted.selection.active.dropdown:hover {
@@ -1985,6 +2009,18 @@ select.ui.dropdown {
1985
2009
  .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover {
1986
2010
  background: rgba(255, 255, 255, 0.35);
1987
2011
  }
2012
+ .ui.dropdown .inverted.menu,
2013
+ .ui.inverted.dropdown .menu {
2014
+
2015
+ /* IE11 */
2016
+ scrollbar-face-color: #656565;
2017
+ scrollbar-shadow-color: #656565;
2018
+ scrollbar-track-color: #323232;
2019
+ scrollbar-arrow-color: #323232;
2020
+
2021
+ /* firefox : first color thumb, second track */
2022
+ scrollbar-color: rgba(255, 255, 255, 0.25) rgba(255, 255, 255, 0.1);
2023
+ }
1988
2024
  .ui.pointing.dropdown > .inverted.menu:after,
1989
2025
  .ui.inverted.pointing.dropdown > .menu:after {
1990
2026
  background: #1B1C1D;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.0-beta.26 - Dropdown
2
+ * # Fomantic-UI 2.9.0-beta.262 - Dropdown
3
3
  * http://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -200,6 +200,7 @@ $.fn.dropdown = function(parameters) {
200
200
  select: function() {
201
201
  if(module.has.input() && selectObserver) {
202
202
  selectObserver.observe($module[0], {
203
+ attributes: true,
203
204
  childList : true,
204
205
  subtree : true
205
206
  });
@@ -224,7 +225,7 @@ $.fn.dropdown = function(parameters) {
224
225
 
225
226
  create: {
226
227
  id: function() {
227
- id = (Math.random().toString(16) + '000000000').substr(2, 8);
228
+ id = (Math.random().toString(16) + '000000000').slice(2, 10);
228
229
  elementNamespace = '.' + id;
229
230
  module.verbose('Creating unique id for element', id);
230
231
  },
@@ -421,6 +422,9 @@ $.fn.dropdown = function(parameters) {
421
422
  module.debug('Disabling dropdown');
422
423
  $module.addClass(className.disabled);
423
424
  }
425
+ if($input.is('[required]')) {
426
+ settings.forceSelection = true;
427
+ }
424
428
  $input
425
429
  .removeAttr('required')
426
430
  .removeAttr('class')
@@ -625,6 +629,11 @@ $.fn.dropdown = function(parameters) {
625
629
  $module
626
630
  .on('change' + eventNamespace, selector.input, module.event.change)
627
631
  ;
632
+ if(module.is.multiple() && module.is.searchSelection()) {
633
+ $module
634
+ .on('paste' + eventNamespace, selector.search, module.event.paste)
635
+ ;
636
+ }
628
637
  },
629
638
  mouseEvents: function() {
630
639
  module.verbose('Binding mouse events');
@@ -844,7 +853,7 @@ $.fn.dropdown = function(parameters) {
844
853
  var value = module.is.multiple() ? module.get.values() : module.get.value();
845
854
  if (value !== '') {
846
855
  module.verbose('Value(s) present after click icon, select value(s) in items');
847
- module.set.selected(value, null, null, true);
856
+ module.set.selected(value, null, true, true);
848
857
  }
849
858
  }
850
859
  iconClicked = false;
@@ -1073,6 +1082,15 @@ $.fn.dropdown = function(parameters) {
1073
1082
  },
1074
1083
 
1075
1084
  event: {
1085
+ paste: function(event) {
1086
+ var pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
1087
+ tokens = pasteValue.split(settings.delimiter)
1088
+ ;
1089
+ tokens.forEach(function(value){
1090
+ module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true);
1091
+ });
1092
+ event.preventDefault();
1093
+ },
1076
1094
  change: function() {
1077
1095
  if(!internalChange) {
1078
1096
  module.debug('Input changed, updating selection');
@@ -1285,8 +1303,8 @@ $.fn.dropdown = function(parameters) {
1285
1303
  },
1286
1304
  select: {
1287
1305
  mutation: function(mutations) {
1288
- module.debug('<select> modified, recreating menu');
1289
1306
  if(module.is.selectMutation(mutations)) {
1307
+ module.debug('<select> modified, recreating menu');
1290
1308
  module.disconnect.selectObserver();
1291
1309
  module.refresh();
1292
1310
  module.setup.select();
@@ -1513,7 +1531,7 @@ $.fn.dropdown = function(parameters) {
1513
1531
  keydown: function(event) {
1514
1532
  var
1515
1533
  pressedKey = event.which,
1516
- isShortcutKey = module.is.inObject(pressedKey, keys)
1534
+ isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter
1517
1535
  ;
1518
1536
  if(isShortcutKey) {
1519
1537
  var
@@ -1531,7 +1549,7 @@ $.fn.dropdown = function(parameters) {
1531
1549
  hasSubMenu = ($subMenu.length> 0),
1532
1550
  hasSelectedItem = ($selectedItem.length > 0),
1533
1551
  selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
1534
- delimiterPressed = (pressedKey == keys.delimiter && settings.allowAdditions && module.is.multiple()),
1552
+ delimiterPressed = (event.key === settings.delimiter && module.is.multiple()),
1535
1553
  isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
1536
1554
  $nextItem,
1537
1555
  isSubMenuItem,
@@ -1629,7 +1647,7 @@ $.fn.dropdown = function(parameters) {
1629
1647
  .addClass(className.selected)
1630
1648
  ;
1631
1649
  module.set.scrollPosition($nextItem);
1632
- if(settings.selectOnKeydown && module.is.single()) {
1650
+ if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
1633
1651
  module.set.selectedItem($nextItem);
1634
1652
  }
1635
1653
  }
@@ -1656,7 +1674,7 @@ $.fn.dropdown = function(parameters) {
1656
1674
  .addClass(className.selected)
1657
1675
  ;
1658
1676
  module.set.scrollPosition($nextItem);
1659
- if(settings.selectOnKeydown && module.is.single()) {
1677
+ if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
1660
1678
  module.set.selectedItem($nextItem);
1661
1679
  }
1662
1680
  }
@@ -1787,7 +1805,7 @@ $.fn.dropdown = function(parameters) {
1787
1805
  ;
1788
1806
  if( module.can.activate( $(element) ) ) {
1789
1807
  module.set.selected(value, $(element));
1790
- if(!module.is.multiple()) {
1808
+ if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
1791
1809
  module.hideAndClear();
1792
1810
  }
1793
1811
  }
@@ -1800,7 +1818,7 @@ $.fn.dropdown = function(parameters) {
1800
1818
  ;
1801
1819
  if( module.can.activate( $(element) ) ) {
1802
1820
  module.set.value(value, text, $(element));
1803
- if(!module.is.multiple()) {
1821
+ if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
1804
1822
  module.hideAndClear();
1805
1823
  }
1806
1824
  }
@@ -1851,7 +1869,7 @@ $.fn.dropdown = function(parameters) {
1851
1869
  ;
1852
1870
  $sizer.text(value);
1853
1871
  // prevent rounding issues
1854
- return Math.ceil( $sizer.width() + 1);
1872
+ return Math.ceil( $sizer.width() + (module.is.edge() ? 3 : 1));
1855
1873
  },
1856
1874
  selectionCount: function() {
1857
1875
  var
@@ -2320,7 +2338,7 @@ $.fn.dropdown = function(parameters) {
2320
2338
  module.error(error.noStorage);
2321
2339
  return;
2322
2340
  }
2323
- name = sessionStorage.getItem(value);
2341
+ name = sessionStorage.getItem(value + elementNamespace);
2324
2342
  return (name !== undefined)
2325
2343
  ? name
2326
2344
  : false
@@ -2364,7 +2382,7 @@ $.fn.dropdown = function(parameters) {
2364
2382
  return;
2365
2383
  }
2366
2384
  module.verbose('Saving remote data to session storage', value, name);
2367
- sessionStorage.setItem(value, name);
2385
+ sessionStorage.setItem(value + elementNamespace, name);
2368
2386
  }
2369
2387
  },
2370
2388
 
@@ -2424,7 +2442,7 @@ $.fn.dropdown = function(parameters) {
2424
2442
  $nextSelectedItem
2425
2443
  .addClass(className.selected)
2426
2444
  ;
2427
- if(settings.selectOnKeydown && module.is.single()) {
2445
+ if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
2428
2446
  module.set.selectedItem($nextSelectedItem);
2429
2447
  }
2430
2448
  $menu
@@ -2510,7 +2528,7 @@ $.fn.dropdown = function(parameters) {
2510
2528
  var
2511
2529
  length = module.get.query().length
2512
2530
  ;
2513
- $search.val( text.substr(0, length));
2531
+ $search.val( text.slice(0, length));
2514
2532
  },
2515
2533
  scrollPosition: function($item, forceScroll) {
2516
2534
  var
@@ -2627,7 +2645,7 @@ $.fn.dropdown = function(parameters) {
2627
2645
  module.set.scrollPosition($nextValue);
2628
2646
  $selectedItem.removeClass(className.selected);
2629
2647
  $nextValue.addClass(className.selected);
2630
- if(settings.selectOnKeydown && module.is.single()) {
2648
+ if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
2631
2649
  module.set.selectedItem($nextValue);
2632
2650
  }
2633
2651
  }
@@ -2765,17 +2783,24 @@ $.fn.dropdown = function(parameters) {
2765
2783
 
2766
2784
  isFiltered = $selected.hasClass(className.filtered),
2767
2785
  isActive = $selected.hasClass(className.active),
2786
+ isActionable = $selected.hasClass(className.actionable),
2768
2787
  isUserValue = $selected.hasClass(className.addition),
2769
2788
  shouldAnimate = (isMultiple && $selectedItem.length == 1)
2770
2789
  ;
2771
- if(isMultiple) {
2790
+ if(isActionable){
2791
+ if((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
2792
+ module.save.remoteData(selectedText, selectedValue);
2793
+ }
2794
+ settings.onActionable.call(element, selectedValue, selectedText, $selected);
2795
+ }
2796
+ else if(isMultiple) {
2772
2797
  if(!isActive || isUserValue) {
2773
2798
  if(settings.apiSettings && settings.saveRemoteData) {
2774
2799
  module.save.remoteData(selectedText, selectedValue);
2775
2800
  }
2776
2801
  if(settings.useLabels) {
2777
- module.add.label(selectedValue, selectedText, shouldAnimate);
2778
2802
  module.add.value(selectedValue, selectedText, $selected);
2803
+ module.add.label(selectedValue, selectedText, shouldAnimate);
2779
2804
  module.set.activeItem($selected);
2780
2805
  module.filterActive();
2781
2806
  module.select.nextAvailable($selectedItem);
@@ -2795,7 +2820,7 @@ $.fn.dropdown = function(parameters) {
2795
2820
  if(settings.apiSettings && settings.saveRemoteData) {
2796
2821
  module.save.remoteData(selectedText, selectedValue);
2797
2822
  }
2798
- if (!keepSearchTerm) {
2823
+ if (!keepSearchTerm && !$selected.hasClass(className.actionable)) {
2799
2824
  module.set.text(selectedText);
2800
2825
  }
2801
2826
  module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
@@ -2985,7 +3010,7 @@ $.fn.dropdown = function(parameters) {
2985
3010
  }
2986
3011
  // extend current array
2987
3012
  if(Array.isArray(currentValue)) {
2988
- newValue = currentValue.concat([addedValue]);
3013
+ newValue = $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]);
2989
3014
  newValue = module.get.uniqueArray(newValue);
2990
3015
  }
2991
3016
  else {
@@ -3069,18 +3094,10 @@ $.fn.dropdown = function(parameters) {
3069
3094
  return;
3070
3095
  }
3071
3096
  // temporarily disconnect observer
3072
- if(selectObserver) {
3073
- selectObserver.disconnect();
3074
- module.verbose('Temporarily disconnecting mutation observer');
3075
- }
3097
+ module.disconnect.selectObserver();
3076
3098
  $option.remove();
3077
3099
  module.verbose('Removing user addition as an <option>', escapedValue);
3078
- if(selectObserver) {
3079
- selectObserver.observe($input[0], {
3080
- childList : true,
3081
- subtree : true
3082
- });
3083
- }
3100
+ module.observe.select();
3084
3101
  },
3085
3102
  message: function() {
3086
3103
  $menu.children(selector.message).remove();
@@ -3379,8 +3396,11 @@ $.fn.dropdown = function(parameters) {
3379
3396
  bubbledIconClick: function(event) {
3380
3397
  return $(event.target).closest($icon).length > 0;
3381
3398
  },
3399
+ edge: function() {
3400
+ return !!window.chrome && !!window.StyleMedia;
3401
+ },
3382
3402
  chrome: function() {
3383
- return !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
3403
+ return !!window.chrome && !window.StyleMedia;
3384
3404
  },
3385
3405
  alreadySetup: function() {
3386
3406
  return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
@@ -3445,7 +3465,7 @@ $.fn.dropdown = function(parameters) {
3445
3465
  selectChanged = false
3446
3466
  ;
3447
3467
  $.each(mutations, function(index, mutation) {
3448
- if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
3468
+ if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
3449
3469
  selectChanged = true;
3450
3470
  return false;
3451
3471
  }
@@ -3990,7 +4010,7 @@ $.fn.dropdown.settings = {
3990
4010
  keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
3991
4011
 
3992
4012
  match : 'both', // what to match against with search selection (both, text, or label)
3993
- fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)
4013
+ fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
3994
4014
  ignoreDiacritics : false, // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
3995
4015
  hideDividers : false, // Whether to hide any divider elements (specified in selector.divider) that are sibling to any items when searched (set to true will hide all dividers, set to 'empty' will hide them when they are not followed by a visible item)
3996
4016
 
@@ -3998,7 +4018,7 @@ $.fn.dropdown.settings = {
3998
4018
  preserveHTML : true, // preserve html when selecting value
3999
4019
  sortSelect : false, // sort selection on init
4000
4020
 
4001
- forceSelection : true, // force a choice on blur with search selection
4021
+ forceSelection : false, // force a choice on blur with search selection
4002
4022
 
4003
4023
  allowAdditions : false, // whether multiple select should allow user added values
4004
4024
  ignoreCase : false, // whether to consider case sensitivity when creating labels
@@ -4009,7 +4029,7 @@ $.fn.dropdown.settings = {
4009
4029
  useLabels : true, // whether multiple select should filter currently active selections from choices
4010
4030
  delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
4011
4031
 
4012
- showOnFocus : true, // show menu on focus
4032
+ showOnFocus : false, // show menu on focus
4013
4033
  allowReselection : false, // whether current value should trigger callbacks when reselected
4014
4034
  allowTab : true, // add tabindex to element
4015
4035
  allowCategorySelection : false, // allow elements with sub-menus to be selected
@@ -4024,6 +4044,8 @@ $.fn.dropdown.settings = {
4024
4044
 
4025
4045
  headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
4026
4046
 
4047
+ collapseOnActionable : true, // whether the dropdown should collapse upon selection of an actionable item
4048
+
4027
4049
  // label settings on multi-select
4028
4050
  label: {
4029
4051
  transition : 'scale',
@@ -4043,6 +4065,7 @@ $.fn.dropdown.settings = {
4043
4065
  onChange : function(value, text, $selected){},
4044
4066
  onAdd : function(value, text, $selected){},
4045
4067
  onRemove : function(value, text, $selected){},
4068
+ onActionable : function(value, text, $selected){},
4046
4069
  onSearch : function(searchTerm){},
4047
4070
 
4048
4071
  onLabelSelect : function($selectedLabels){},
@@ -4105,12 +4128,12 @@ $.fn.dropdown.settings = {
4105
4128
  icon : 'icon', // optional icon name
4106
4129
  iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
4107
4130
  class : 'class', // optional individual class for item/header
4108
- divider : 'divider' // optional divider append for group headers
4131
+ divider : 'divider', // optional divider append for group headers
4132
+ actionable : 'actionable' // optional actionable item
4109
4133
  },
4110
4134
 
4111
4135
  keys : {
4112
4136
  backspace : 8,
4113
- delimiter : 188, // comma
4114
4137
  deleteKey : 46,
4115
4138
  enter : 13,
4116
4139
  escape : 27,
@@ -4177,7 +4200,8 @@ $.fn.dropdown.settings = {
4177
4200
  header : 'header',
4178
4201
  divider : 'divider',
4179
4202
  groupIcon : '',
4180
- unfilterable : 'unfilterable'
4203
+ unfilterable : 'unfilterable',
4204
+ actionable : 'actionable'
4181
4205
  }
4182
4206
 
4183
4207
  };
@@ -4252,6 +4276,9 @@ $.fn.dropdown.settings.templates = {
4252
4276
  maybeText = (option[fields.text])
4253
4277
  ? ' data-text="' + deQuote(option[fields.text],true) + '"'
4254
4278
  : '',
4279
+ maybeActionable = (option[fields.actionable])
4280
+ ? className.actionable+' '
4281
+ : '',
4255
4282
  maybeDisabled = (option[fields.disabled])
4256
4283
  ? className.disabled+' '
4257
4284
  : '',
@@ -4260,7 +4287,7 @@ $.fn.dropdown.settings.templates = {
4260
4287
  : '',
4261
4288
  hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
4262
4289
  ;
4263
- html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
4290
+ html += '<div class="'+ maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
4264
4291
  if (isMenu) {
4265
4292
  html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
4266
4293
  }