fomantic-ui 2.9.3-beta.5 → 2.9.3-beta.51

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 (269) hide show
  1. package/.all-contributorsrc +2 -2
  2. package/.github/FUNDING.yml +1 -1
  3. package/.github/auto_assign.yml +1 -1
  4. package/.github/workflows/ci.yml +2 -2
  5. package/CONTRIBUTORS.md +1 -1
  6. package/README.md +5 -2
  7. package/SECURITY.md +2 -1
  8. package/dist/components/accordion.css +1 -1
  9. package/dist/components/accordion.js +2 -2
  10. package/dist/components/accordion.min.css +1 -1
  11. package/dist/components/accordion.min.js +2 -2
  12. package/dist/components/ad.css +1 -1
  13. package/dist/components/ad.min.css +1 -1
  14. package/dist/components/api.js +3 -3
  15. package/dist/components/api.min.js +2 -2
  16. package/dist/components/breadcrumb.css +1 -1
  17. package/dist/components/breadcrumb.min.css +1 -1
  18. package/dist/components/button.css +2 -2
  19. package/dist/components/button.min.css +2 -2
  20. package/dist/components/calendar.css +1 -1
  21. package/dist/components/calendar.js +2 -2
  22. package/dist/components/calendar.min.css +1 -1
  23. package/dist/components/calendar.min.js +2 -2
  24. package/dist/components/card.css +1 -1
  25. package/dist/components/card.min.css +1 -1
  26. package/dist/components/checkbox.css +50 -6
  27. package/dist/components/checkbox.js +5 -3
  28. package/dist/components/checkbox.min.css +2 -2
  29. package/dist/components/checkbox.min.js +2 -2
  30. package/dist/components/comment.css +6 -1
  31. package/dist/components/comment.min.css +2 -2
  32. package/dist/components/container.css +62 -1
  33. package/dist/components/container.min.css +2 -2
  34. package/dist/components/dimmer.css +3 -3
  35. package/dist/components/dimmer.js +2 -2
  36. package/dist/components/dimmer.min.css +2 -2
  37. package/dist/components/dimmer.min.js +2 -2
  38. package/dist/components/divider.css +1 -1
  39. package/dist/components/divider.min.css +1 -1
  40. package/dist/components/dropdown.css +24 -3
  41. package/dist/components/dropdown.js +29 -21
  42. package/dist/components/dropdown.min.css +2 -2
  43. package/dist/components/dropdown.min.js +2 -2
  44. package/dist/components/embed.css +1 -1
  45. package/dist/components/embed.js +2 -2
  46. package/dist/components/embed.min.css +1 -1
  47. package/dist/components/embed.min.js +2 -2
  48. package/dist/components/emoji.css +697 -249
  49. package/dist/components/emoji.min.css +2 -2
  50. package/dist/components/feed.css +486 -5
  51. package/dist/components/feed.min.css +2 -2
  52. package/dist/components/flag.css +3 -2
  53. package/dist/components/flag.min.css +2 -2
  54. package/dist/components/flyout.css +1 -1
  55. package/dist/components/flyout.js +5 -3
  56. package/dist/components/flyout.min.css +1 -1
  57. package/dist/components/flyout.min.js +2 -2
  58. package/dist/components/form.css +53 -20
  59. package/dist/components/form.js +73 -32
  60. package/dist/components/form.min.css +2 -2
  61. package/dist/components/form.min.js +2 -2
  62. package/dist/components/grid.css +107 -107
  63. package/dist/components/grid.min.css +2 -2
  64. package/dist/components/header.css +1 -1
  65. package/dist/components/header.min.css +1 -1
  66. package/dist/components/icon.css +62 -62
  67. package/dist/components/icon.min.css +2 -2
  68. package/dist/components/image.css +1 -1
  69. package/dist/components/image.min.css +1 -1
  70. package/dist/components/input.css +3 -27
  71. package/dist/components/input.min.css +2 -2
  72. package/dist/components/item.css +6 -1
  73. package/dist/components/item.min.css +2 -2
  74. package/dist/components/label.css +21 -2
  75. package/dist/components/label.min.css +2 -2
  76. package/dist/components/list.css +13 -13
  77. package/dist/components/list.min.css +2 -2
  78. package/dist/components/loader.css +282 -282
  79. package/dist/components/loader.min.css +2 -2
  80. package/dist/components/menu.css +13 -7
  81. package/dist/components/menu.min.css +2 -2
  82. package/dist/components/message.css +1 -1
  83. package/dist/components/message.min.css +1 -1
  84. package/dist/components/modal.css +10 -3
  85. package/dist/components/modal.js +10 -10
  86. package/dist/components/modal.min.css +2 -2
  87. package/dist/components/modal.min.js +2 -2
  88. package/dist/components/nag.css +1 -1
  89. package/dist/components/nag.js +3 -3
  90. package/dist/components/nag.min.css +1 -1
  91. package/dist/components/nag.min.js +2 -2
  92. package/dist/components/placeholder.css +1 -1
  93. package/dist/components/placeholder.min.css +1 -1
  94. package/dist/components/popup.css +41 -40
  95. package/dist/components/popup.js +11 -9
  96. package/dist/components/popup.min.css +2 -2
  97. package/dist/components/popup.min.js +2 -2
  98. package/dist/components/progress.css +1 -1
  99. package/dist/components/progress.js +2 -2
  100. package/dist/components/progress.min.css +1 -1
  101. package/dist/components/progress.min.js +2 -2
  102. package/dist/components/rail.css +1 -1
  103. package/dist/components/rail.min.css +1 -1
  104. package/dist/components/rating.css +1 -1
  105. package/dist/components/rating.js +2 -2
  106. package/dist/components/rating.min.css +1 -1
  107. package/dist/components/rating.min.js +2 -2
  108. package/dist/components/reset.css +1 -1
  109. package/dist/components/reset.min.css +1 -1
  110. package/dist/components/reveal.css +1 -1
  111. package/dist/components/reveal.min.css +1 -1
  112. package/dist/components/search.css +26 -1
  113. package/dist/components/search.js +5 -4
  114. package/dist/components/search.min.css +2 -2
  115. package/dist/components/search.min.js +2 -2
  116. package/dist/components/segment.css +159 -33
  117. package/dist/components/segment.min.css +2 -2
  118. package/dist/components/shape.css +1 -1
  119. package/dist/components/shape.js +2 -2
  120. package/dist/components/shape.min.css +1 -1
  121. package/dist/components/shape.min.js +2 -2
  122. package/dist/components/sidebar.css +1 -1
  123. package/dist/components/sidebar.js +2 -2
  124. package/dist/components/sidebar.min.css +1 -1
  125. package/dist/components/sidebar.min.js +2 -2
  126. package/dist/components/site.css +1 -1
  127. package/dist/components/site.js +2 -2
  128. package/dist/components/site.min.css +1 -1
  129. package/dist/components/site.min.js +2 -2
  130. package/dist/components/slider.css +1 -1
  131. package/dist/components/slider.js +123 -27
  132. package/dist/components/slider.min.css +1 -1
  133. package/dist/components/slider.min.js +2 -2
  134. package/dist/components/state.js +2 -2
  135. package/dist/components/state.min.js +2 -2
  136. package/dist/components/statistic.css +1 -1
  137. package/dist/components/statistic.min.css +1 -1
  138. package/dist/components/step.css +1 -1
  139. package/dist/components/step.min.css +1 -1
  140. package/dist/components/sticky.css +1 -1
  141. package/dist/components/sticky.js +2 -2
  142. package/dist/components/sticky.min.css +1 -1
  143. package/dist/components/sticky.min.js +2 -2
  144. package/dist/components/tab.css +1 -1
  145. package/dist/components/tab.js +6 -4
  146. package/dist/components/tab.min.css +1 -1
  147. package/dist/components/tab.min.js +2 -2
  148. package/dist/components/table.css +65 -1
  149. package/dist/components/table.min.css +2 -2
  150. package/dist/components/text.css +1 -1
  151. package/dist/components/text.min.css +1 -1
  152. package/dist/components/toast.css +6 -1
  153. package/dist/components/toast.js +2 -2
  154. package/dist/components/toast.min.css +2 -2
  155. package/dist/components/toast.min.js +2 -2
  156. package/dist/components/transition.css +1 -1
  157. package/dist/components/transition.js +3 -3
  158. package/dist/components/transition.min.css +1 -1
  159. package/dist/components/transition.min.js +2 -2
  160. package/dist/components/visibility.js +2 -2
  161. package/dist/components/visibility.min.js +2 -2
  162. package/dist/semantic.css +2635 -959
  163. package/dist/semantic.js +303 -149
  164. package/dist/semantic.min.css +2 -2
  165. package/dist/semantic.min.js +2 -2
  166. package/package.json +3 -2
  167. package/src/definitions/behaviors/api.js +2 -2
  168. package/src/definitions/behaviors/form.js +72 -31
  169. package/src/definitions/behaviors/state.js +1 -1
  170. package/src/definitions/behaviors/visibility.js +1 -1
  171. package/src/definitions/collections/form.less +25 -12
  172. package/src/definitions/collections/grid.less +106 -106
  173. package/src/definitions/collections/menu.less +29 -22
  174. package/src/definitions/collections/table.less +66 -0
  175. package/src/definitions/elements/button.less +1 -1
  176. package/src/definitions/elements/container.less +63 -0
  177. package/src/definitions/elements/icon.less +5 -5
  178. package/src/definitions/elements/input.less +2 -2
  179. package/src/definitions/elements/label.less +21 -1
  180. package/src/definitions/elements/list.less +13 -13
  181. package/src/definitions/elements/loader.less +71 -71
  182. package/src/definitions/elements/segment.less +110 -13
  183. package/src/definitions/globals/site.js +1 -1
  184. package/src/definitions/modules/accordion.js +1 -1
  185. package/src/definitions/modules/calendar.js +1 -1
  186. package/src/definitions/modules/checkbox.js +4 -2
  187. package/src/definitions/modules/checkbox.less +61 -5
  188. package/src/definitions/modules/dimmer.js +1 -1
  189. package/src/definitions/modules/dimmer.less +2 -2
  190. package/src/definitions/modules/dropdown.js +28 -20
  191. package/src/definitions/modules/dropdown.less +33 -2
  192. package/src/definitions/modules/embed.js +1 -1
  193. package/src/definitions/modules/flyout.js +4 -2
  194. package/src/definitions/modules/modal.js +9 -9
  195. package/src/definitions/modules/modal.less +11 -2
  196. package/src/definitions/modules/nag.js +2 -2
  197. package/src/definitions/modules/popup.js +10 -8
  198. package/src/definitions/modules/popup.less +40 -38
  199. package/src/definitions/modules/progress.js +1 -1
  200. package/src/definitions/modules/rating.js +1 -1
  201. package/src/definitions/modules/search.js +4 -3
  202. package/src/definitions/modules/search.less +31 -0
  203. package/src/definitions/modules/shape.js +1 -1
  204. package/src/definitions/modules/sidebar.js +1 -1
  205. package/src/definitions/modules/slider.js +122 -26
  206. package/src/definitions/modules/sticky.js +1 -1
  207. package/src/definitions/modules/tab.js +5 -3
  208. package/src/definitions/modules/toast.js +1 -1
  209. package/src/definitions/modules/toast.less +7 -0
  210. package/src/definitions/modules/transition.js +2 -2
  211. package/src/definitions/views/comment.less +7 -0
  212. package/src/definitions/views/feed.less +238 -32
  213. package/src/definitions/views/item.less +7 -0
  214. package/src/themes/amazon/elements/button.variables +5 -1
  215. package/src/themes/bootstrap3/elements/button.variables +5 -1
  216. package/src/themes/chubby/elements/header.variables +6 -1
  217. package/src/themes/default/collections/message.variables +3 -9
  218. package/src/themes/default/collections/table.variables +3 -0
  219. package/src/themes/default/elements/button.variables +1 -3
  220. package/src/themes/default/elements/container.variables +3 -0
  221. package/src/themes/default/elements/emoji.variables +179 -67
  222. package/src/themes/default/elements/flag.variables +1 -1
  223. package/src/themes/default/elements/label.variables +5 -0
  224. package/src/themes/default/elements/segment.variables +8 -0
  225. package/src/themes/default/globals/site.variables +20 -1
  226. package/src/themes/default/globals/variation.variables +23 -1
  227. package/src/themes/default/modules/checkbox.variables +12 -0
  228. package/src/themes/default/modules/dropdown.variables +3 -0
  229. package/src/themes/default/modules/modal.variables +4 -0
  230. package/src/themes/default/modules/popup.variables +3 -1
  231. package/src/themes/default/modules/search.variables +3 -0
  232. package/src/themes/default/modules/toast.variables +1 -0
  233. package/src/themes/default/views/card.variables +4 -12
  234. package/src/themes/default/views/feed.variables +55 -1
  235. package/src/themes/github/elements/button.variables +5 -1
  236. package/src/themes/joypixels/elements/emoji.variables +182 -70
  237. package/src/themes/twitter/elements/button.variables +5 -1
  238. package/src/themes/twitter/elements/emoji.variables +178 -66
  239. package/tasks/admin/distributions/create.js +8 -3
  240. package/tasks/config/project/install.js +3 -0
  241. package/tasks/config/tasks.js +1 -8
  242. package/tasks/install.js +15 -5
  243. package/types/fomantic-ui-accordion.d.ts +244 -0
  244. package/types/fomantic-ui-api.d.ts +555 -0
  245. package/types/fomantic-ui-calendar.d.ts +766 -0
  246. package/types/fomantic-ui-checkbox.d.ts +332 -0
  247. package/types/fomantic-ui-dimmer.d.ts +408 -0
  248. package/types/fomantic-ui-dropdown.d.ts +1183 -0
  249. package/types/fomantic-ui-embed.d.ts +326 -0
  250. package/types/fomantic-ui-flyout.d.ts +525 -0
  251. package/types/fomantic-ui-form.d.ts +651 -0
  252. package/types/fomantic-ui-modal.d.ts +471 -0
  253. package/types/fomantic-ui-nag.d.ts +270 -0
  254. package/types/fomantic-ui-popup.d.ts +523 -0
  255. package/types/fomantic-ui-progress.d.ts +459 -0
  256. package/types/fomantic-ui-rating.d.ts +187 -0
  257. package/types/fomantic-ui-search.d.ts +496 -0
  258. package/types/fomantic-ui-shape.d.ts +274 -0
  259. package/types/fomantic-ui-sidebar.d.ts +402 -0
  260. package/types/fomantic-ui-slider.d.ts +316 -0
  261. package/types/fomantic-ui-sticky.d.ts +215 -0
  262. package/types/fomantic-ui-tab.d.ts +361 -0
  263. package/types/fomantic-ui-tests.ts +25 -0
  264. package/types/fomantic-ui-toast.d.ts +514 -0
  265. package/types/fomantic-ui-transition.d.ts +355 -0
  266. package/types/fomantic-ui-visibility.d.ts +355 -0
  267. package/types/index.d.ts +63 -0
  268. package/types/tsconfig.json +23 -0
  269. package/types/tslint.json +1 -0
@@ -86,7 +86,6 @@
86
86
  width: @arrowSize;
87
87
  height: @arrowSize;
88
88
  background: @tooltipArrowBackground;
89
- transform: rotate(45deg);
90
89
  z-index: @arrowZIndex;
91
90
  box-shadow: @tooltipArrowBoxShadow;
92
91
  }
@@ -114,67 +113,59 @@
114
113
  z-index: @tooltipZIndex;
115
114
  }
116
115
 
117
- /* Default Position (Top Center) */
118
- [data-tooltip]:not([data-position])::before {
119
- top: auto;
120
- right: auto;
121
- bottom: 100%;
122
- left: 50%;
123
- background: @tooltipArrowBottomBackground;
124
- margin-left: @tooltipArrowHorizontalOffset;
125
- margin-bottom: -@tooltipArrowVerticalOffset;
126
- }
127
- [data-tooltip]:not([data-position])::after {
128
- left: 50%;
129
- transform: translateX(-50%);
130
- bottom: 100%;
131
- margin-bottom: @tooltipDistanceAway;
132
- }
133
-
134
116
  /* Animation */
135
117
  [data-tooltip]::before,
136
118
  [data-tooltip]::after {
137
119
  pointer-events: none;
138
- visibility: hidden;
139
120
  opacity: 0;
140
121
  transition:
141
122
  transform @tooltipDuration @tooltipEasing,
142
123
  opacity @tooltipDuration @tooltipEasing;
143
124
  }
125
+ [data-tooltip]::after,
126
+ [data-tooltip]:hover::before {
127
+ transition-delay: @tooltipDelay;
128
+ }
129
+ [data-tooltip]::before,
130
+ [data-tooltip]:hover::after {
131
+ transition-delay: 0s;
132
+ }
144
133
  [data-tooltip]::before {
145
- transform: rotate(45deg) scale(0) !important;
134
+ transform: rotate(45deg) scale(@tooltipScaleInit);
146
135
  transform-origin: center top;
147
136
  }
148
137
  [data-tooltip]::after {
149
138
  transform-origin: center bottom;
150
139
  }
140
+ [data-tooltip][data-variation~="visible"]::before,
141
+ [data-tooltip][data-variation~="visible"]::after,
151
142
  [data-tooltip]:hover::before,
152
143
  [data-tooltip]:hover::after {
153
- visibility: visible;
154
144
  pointer-events: auto;
155
145
  opacity: 1;
156
146
  }
157
147
  [data-tooltip]:hover::before {
158
- transform: rotate(45deg) scale(1) !important;
148
+ transform: rotate(45deg) scale(1);
159
149
  }
160
150
 
161
151
  /* Animation Position */
162
- [data-tooltip]::after,
152
+ [data-tooltip]:not([data-position])::after,
163
153
  [data-tooltip][data-position="top center"]::after,
164
154
  [data-tooltip][data-position="bottom center"]::after {
165
- transform: translateX(-50%) scale(0) !important;
155
+ transform: translateX(-50%) scale(@tooltipScaleInit);
166
156
  }
167
- [data-tooltip]:hover::after,
157
+ [data-tooltip]:not([data-position]):hover::after,
158
+ [data-tooltip][data-position="top center"]:hover::after,
168
159
  [data-tooltip][data-position="bottom center"]:hover::after {
169
- transform: translateX(-50%) scale(1) !important;
160
+ transform: translateX(-50%) scale(1);
170
161
  }
171
162
  [data-tooltip][data-position="left center"]::after,
172
163
  [data-tooltip][data-position="right center"]::after {
173
- transform: translateY(-50%) scale(0) !important;
164
+ transform: translateY(-50%) scale(@tooltipScaleInit);
174
165
  }
175
166
  [data-tooltip][data-position="left center"]:hover::after,
176
167
  [data-tooltip][data-position="right center"]:hover::after {
177
- transform: translateY(-50%) scale(1) !important;
168
+ transform: translateY(-50%) scale(1);
178
169
  // https://github.com/fomantic/Fomantic-UI/pull/1537
179
170
  // stylelint-disable-next-line property-no-vendor-prefix
180
171
  -moz-transform: translateY(-50%) scale(1.0001) !important;
@@ -183,13 +174,13 @@
183
174
  [data-tooltip][data-position="top right"]::after,
184
175
  [data-tooltip][data-position="bottom left"]::after,
185
176
  [data-tooltip][data-position="bottom right"]::after {
186
- transform: scale(0) !important;
177
+ transform: scale(@tooltipScaleInit);
187
178
  }
188
179
  [data-tooltip][data-position="top left"]:hover::after,
189
180
  [data-tooltip][data-position="top right"]:hover::after,
190
181
  [data-tooltip][data-position="bottom left"]:hover::after,
191
182
  [data-tooltip][data-position="bottom right"]:hover::after {
192
- transform: scale(1) !important;
183
+ transform: scale(1);
193
184
  }
194
185
  & when (@variationPopupFixed) {
195
186
  [data-tooltip][data-variation~="fixed"]::after {
@@ -215,11 +206,11 @@
215
206
 
216
207
  /* Arrow */
217
208
  [data-tooltip][data-inverted]::before {
218
- box-shadow: none !important;
209
+ box-shadow: none;
219
210
  }
220
211
 
221
212
  /* Arrow Position */
222
- [data-tooltip][data-inverted]::before {
213
+ [data-tooltip]:not([data-position])[data-inverted]::before {
223
214
  background: @invertedArrowBottomBackground;
224
215
  }
225
216
 
@@ -241,15 +232,16 @@
241
232
  background: @arrowBottomBackground;
242
233
  }
243
234
  & when (@variationPopupCenter) {
244
- /* Top Center */
235
+ /* Top Center (default) */
236
+ [data-tooltip]:not([data-position])::after,
245
237
  [data-position="top center"][data-tooltip]::after {
246
238
  top: auto;
247
239
  right: auto;
248
240
  left: 50%;
249
241
  bottom: 100%;
250
- transform: translateX(-50%);
251
242
  margin-bottom: @tooltipDistanceAway;
252
243
  }
244
+ [data-tooltip]:not([data-position])::before,
253
245
  [data-position="top center"][data-tooltip]::before {
254
246
  top: auto;
255
247
  right: auto;
@@ -310,7 +302,6 @@
310
302
  right: auto;
311
303
  left: 50%;
312
304
  top: 100%;
313
- transform: translateX(-50%);
314
305
  margin-top: @tooltipDistanceAway;
315
306
  }
316
307
  [data-position="bottom center"][data-tooltip]::before {
@@ -362,7 +353,6 @@
362
353
  right: 100%;
363
354
  top: 50%;
364
355
  margin-right: @tooltipDistanceAway;
365
- transform: translateY(-50%);
366
356
  }
367
357
  [data-position="left center"][data-tooltip]::before {
368
358
  right: 100%;
@@ -379,7 +369,6 @@
379
369
  left: 100%;
380
370
  top: 50%;
381
371
  margin-left: @tooltipDistanceAway;
382
- transform: translateY(-50%);
383
372
  }
384
373
  [data-position="right center"][data-tooltip]::before {
385
374
  left: 100%;
@@ -454,6 +443,19 @@
454
443
  }
455
444
  }
456
445
 
446
+ [data-position="top left"][data-tooltip]::after {
447
+ transform-origin: bottom left;
448
+ }
449
+ [data-position="top right"][data-tooltip]::after {
450
+ transform-origin: bottom right;
451
+ }
452
+ [data-position="bottom left"][data-tooltip]::after {
453
+ transform-origin: top left;
454
+ }
455
+ [data-position="bottom right"][data-tooltip]::after {
456
+ transform-origin: top right;
457
+ }
458
+
457
459
  & when (@variationPopupBasic) {
458
460
  /* --------------
459
461
  Basic
@@ -822,7 +824,7 @@
822
824
  }
823
825
  .ui.inverted.popup::before {
824
826
  background-color: @invertedArrowColor;
825
- box-shadow: none !important;
827
+ box-shadow: none;
826
828
  }
827
829
  }
828
830
 
@@ -791,7 +791,7 @@
791
791
  });
792
792
  }
793
793
  clearTimeout(module.performance.timer);
794
- module.performance.timer = setTimeout(module.performance.display, 500);
794
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
795
795
  },
796
796
  display: function () {
797
797
  var
@@ -368,7 +368,7 @@
368
368
  });
369
369
  }
370
370
  clearTimeout(module.performance.timer);
371
- module.performance.timer = setTimeout(module.performance.display, 500);
371
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
372
372
  },
373
373
  display: function () {
374
374
  var
@@ -169,7 +169,7 @@
169
169
  callback = function () {
170
170
  module.cancel.query();
171
171
  module.remove.focus();
172
- module.timer = setTimeout(module.hideResults, settings.hideDelay);
172
+ module.timer = setTimeout(function () { module.hideResults(); }, settings.hideDelay);
173
173
  }
174
174
  ;
175
175
  if (pageLostFocus) {
@@ -561,6 +561,7 @@
561
561
  if (cache) {
562
562
  module.debug('Reading result from cache', searchTerm);
563
563
  module.save.results(cache.results);
564
+ settings.onResults.call(element, cache.results, true);
564
565
  module.addResults(cache.html);
565
566
  module.inject.id(cache.results);
566
567
  callback();
@@ -1170,7 +1171,7 @@
1170
1171
  });
1171
1172
  }
1172
1173
  clearTimeout(module.performance.timer);
1173
- module.performance.timer = setTimeout(module.performance.display, 500);
1174
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1174
1175
  },
1175
1176
  display: function () {
1176
1177
  var
@@ -1345,7 +1346,7 @@
1345
1346
  onResultsAdd: false,
1346
1347
 
1347
1348
  onSearchQuery: function (query) {},
1348
- onResults: function (response) {},
1349
+ onResults: function (response, fromCache) {},
1349
1350
 
1350
1351
  onResultsOpen: function () {},
1351
1352
  onResultsClose: function () {},
@@ -367,6 +367,19 @@
367
367
  transition: @categoryResultTransition;
368
368
  padding: @categoryResultPadding;
369
369
  }
370
+
371
+ & when (@variationSearchHorizontalCategory) {
372
+ .ui.horizontal.category.search > .results .category,
373
+ .ui.horizontal.category.search > .results .category > .name,
374
+ .ui.horizontal.category.search > .results .category > .results {
375
+ display: block;
376
+ }
377
+
378
+ .ui.horizontal.category.search > .results .category > .results {
379
+ width: 100%;
380
+ border-left: 0;
381
+ }
382
+ }
370
383
  }
371
384
 
372
385
  /*******************************
@@ -394,21 +407,39 @@
394
407
  @media only screen and (max-width: @largestMobileScreen) {
395
408
  .ui.scrolling.search > .results {
396
409
  max-height: @scrollingMobileMaxResultsHeight;
410
+ .resizable& when (@variationSearchResizable) {
411
+ height: @scrollingMobileMaxResultsHeight;
412
+ }
397
413
  }
398
414
  }
399
415
  @media only screen and (min-width: @tabletBreakpoint) {
400
416
  .ui.scrolling.search > .results {
401
417
  max-height: @scrollingTabletMaxResultsHeight;
418
+ .resizable& when (@variationSearchResizable) {
419
+ height: @scrollingTabletMaxResultsHeight;
420
+ }
402
421
  }
403
422
  }
404
423
  @media only screen and (min-width: @computerBreakpoint) {
405
424
  .ui.scrolling.search > .results {
406
425
  max-height: @scrollingComputerMaxResultsHeight;
426
+ .resizable& when (@variationSearchResizable) {
427
+ height: @scrollingComputerMaxResultsHeight;
428
+ }
407
429
  }
408
430
  }
409
431
  @media only screen and (min-width: @widescreenMonitorBreakpoint) {
410
432
  .ui.scrolling.search > .results {
411
433
  max-height: @scrollingWidescreenMaxResultsHeight;
434
+ .resizable& when (@variationSearchResizable) {
435
+ height: @scrollingWidescreenMaxResultsHeight;
436
+ }
437
+ }
438
+ }
439
+ & when (@variationSearchResizable) {
440
+ .ui.scrolling.resizable.search > .results {
441
+ resize: @resizableDirection;
442
+ max-height: none;
412
443
  }
413
444
  }
414
445
  }
@@ -623,7 +623,7 @@
623
623
  });
624
624
  }
625
625
  clearTimeout(module.performance.timer);
626
- module.performance.timer = setTimeout(module.performance.display, 500);
626
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
627
627
  },
628
628
  display: function () {
629
629
  var
@@ -898,7 +898,7 @@
898
898
  });
899
899
  }
900
900
  clearTimeout(module.performance.timer);
901
- module.performance.timer = setTimeout(module.performance.display, 500);
901
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
902
902
  },
903
903
  display: function () {
904
904
  var
@@ -103,9 +103,7 @@
103
103
  module.setup.layout();
104
104
  module.setup.labels();
105
105
 
106
- if (!module.is.disabled()) {
107
- module.bind.events();
108
- }
106
+ module.bind.events();
109
107
 
110
108
  module.read.metadata();
111
109
  module.read.settings();
@@ -137,20 +135,32 @@
137
135
  $module.attr('tabindex', 0);
138
136
  }
139
137
  if ($module.find('.inner').length === 0) {
140
- $module.append("<div class='inner'>"
141
- + "<div class='track'></div>"
142
- + "<div class='track-fill'></div>"
143
- + "<div class='thumb'></div>"
138
+ $module.append('<div class="inner">'
139
+ + '<div class="track"></div>'
140
+ + '<div class="track-fill"></div>'
141
+ + '<div class="thumb"></div>'
144
142
  + '</div>');
145
143
  }
146
144
  precision = module.get.precision();
147
145
  $thumb = $module.find('.thumb:not(.second)');
146
+ if (settings.showThumbTooltip) {
147
+ $thumb
148
+ .attr('data-position', settings.tooltipConfig.position)
149
+ .attr('data-variation', settings.tooltipConfig.variation)
150
+ ;
151
+ }
148
152
  $currThumb = $thumb;
149
153
  if (module.is.range()) {
150
154
  if ($module.find('.thumb.second').length === 0) {
151
- $module.find('.inner').append("<div class='thumb second'></div>");
155
+ $module.find('.inner').append('<div class="thumb second"></div>');
152
156
  }
153
157
  $secondThumb = $module.find('.thumb.second');
158
+ if (settings.showThumbTooltip) {
159
+ $secondThumb
160
+ .attr('data-position', settings.tooltipConfig.position)
161
+ .attr('data-variation', settings.tooltipConfig.variation)
162
+ ;
163
+ }
154
164
  }
155
165
  $track = $module.find('.track');
156
166
  $trackFill = $module.find('.track-fill');
@@ -204,9 +214,10 @@
204
214
  for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
205
215
  var
206
216
  labelText = module.get.label(i),
207
- $label = labelText !== ''
217
+ showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
218
+ $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
208
219
  ? (!(i % module.get.gapRatio())
209
- ? $('<li class="label">' + labelText + '</li>')
220
+ ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
210
221
  : $('<li class="halftick label"></li>'))
211
222
  : null,
212
223
  ratio = i / len
@@ -350,6 +361,18 @@
350
361
  ;
351
362
  $currThumb = initialPosition > newPos ? $thumb : $secondThumb;
352
363
  }
364
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
365
+ var currentRangeDiff = module.get.currentRangeDiff(value),
366
+ isSecondThumb = $currThumb.hasClass('second')
367
+ ;
368
+ if ((settings.minRange && currentRangeDiff < settings.minRange)
369
+ || (settings.maxRange && currentRangeDiff > settings.maxRange)
370
+ || (settings.preventCrossover && !isSecondThumb && value > module.secondThumbVal)
371
+ || (settings.preventCrossover && isSecondThumb && value < module.thumbVal)
372
+ ) {
373
+ return;
374
+ }
375
+ }
353
376
  if (module.get.step() === 0 || module.is.smooth()) {
354
377
  var
355
378
  thumbVal = module.thumbVal,
@@ -385,6 +408,17 @@
385
408
  return;
386
409
  }
387
410
  var value = module.determine.valueFromEvent(event);
411
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
412
+ if ($currThumb === undefined) {
413
+ $currThumb = value <= module.get.currentThumbValue() ? $thumb : $secondThumb;
414
+ }
415
+ var currentRangeDiff = module.get.currentRangeDiff(value);
416
+ if (settings.minRange && currentRangeDiff < settings.minRange) {
417
+ value = module.get.edgeValue(value, settings.minRange);
418
+ } else if (settings.maxRange && currentRangeDiff > settings.maxRange) {
419
+ value = module.get.edgeValue(value, settings.maxRange);
420
+ }
421
+ }
388
422
  module.set.value(value);
389
423
  module.unbind.slidingEvents();
390
424
  touchIdentifier = undefined;
@@ -401,6 +435,9 @@
401
435
  }
402
436
  },
403
437
  keydown: function (event, first) {
438
+ if (module.is.disabled()) {
439
+ return;
440
+ }
404
441
  if (settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
405
442
  $currThumb = undefined;
406
443
  }
@@ -437,7 +474,7 @@
437
474
  }
438
475
  },
439
476
  activateFocus: function (event) {
440
- if (!module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
477
+ if (!module.is.disabled() && !module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
441
478
  event.preventDefault();
442
479
  module.event.keydown(event, true);
443
480
  $module.trigger('focus');
@@ -502,7 +539,13 @@
502
539
 
503
540
  is: {
504
541
  range: function () {
505
- return $module.hasClass(settings.className.range);
542
+ var isRange = $module.hasClass(className.range);
543
+ if (!isRange && (settings.minRange || settings.maxRange)) {
544
+ $module.addClass(className.range);
545
+ isRange = true;
546
+ }
547
+
548
+ return isRange;
506
549
  },
507
550
  hover: function () {
508
551
  return isHover;
@@ -511,23 +554,56 @@
511
554
  return $module.is(':focus');
512
555
  },
513
556
  disabled: function () {
514
- return $module.hasClass(settings.className.disabled);
557
+ return $module.hasClass(className.disabled);
515
558
  },
516
559
  labeled: function () {
517
- return $module.hasClass(settings.className.labeled);
560
+ var isLabeled = $module.hasClass(className.labeled);
561
+ if (!isLabeled && (settings.restrictedLabels.length > 0 || settings.showLabelTicks !== false)) {
562
+ $module.addClass(className.labeled);
563
+ isLabeled = true;
564
+ }
565
+
566
+ return isLabeled;
518
567
  },
519
568
  reversed: function () {
520
- return $module.hasClass(settings.className.reversed);
569
+ return $module.hasClass(className.reversed);
521
570
  },
522
571
  vertical: function () {
523
- return $module.hasClass(settings.className.vertical);
572
+ return $module.hasClass(className.vertical);
524
573
  },
525
574
  smooth: function () {
526
- return settings.smooth || $module.hasClass(settings.className.smooth);
575
+ return settings.smooth || $module.hasClass(className.smooth);
527
576
  },
528
577
  },
529
578
 
530
579
  get: {
580
+ currentRangeDiff: function (value) {
581
+ var currentRangeDiff;
582
+ if ($currThumb.hasClass('second')) {
583
+ currentRangeDiff = module.thumbVal < value
584
+ ? value - module.thumbVal
585
+ : module.thumbVal - value;
586
+ } else {
587
+ currentRangeDiff = module.secondThumbVal > value
588
+ ? module.secondThumbVal - value
589
+ : value - module.secondThumbVal;
590
+ }
591
+
592
+ return currentRangeDiff;
593
+ },
594
+ edgeValue: function (value, edgeValue) {
595
+ if ($currThumb.hasClass('second')) {
596
+ value = module.thumbVal < value
597
+ ? module.thumbVal + edgeValue
598
+ : module.thumbVal - edgeValue;
599
+ } else {
600
+ value = module.secondThumbVal < value
601
+ ? module.secondThumbVal + edgeValue
602
+ : module.secondThumbVal - edgeValue;
603
+ }
604
+
605
+ return value;
606
+ },
531
607
  trackOffset: function () {
532
608
  if (module.is.vertical()) {
533
609
  return $track.offset().top;
@@ -731,13 +807,10 @@
731
807
  return thumbDelta <= secondThumbDelta ? thumbPos : secondThumbPos;
732
808
  },
733
809
  thumbPos: function ($element) {
734
- var
735
- pos = module.is.vertical()
736
- ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
737
- : (module.is.reversed() ? $element.css('right') : $element.css('left'))
810
+ return module.is.vertical()
811
+ ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
812
+ : (module.is.reversed() ? $element.css('right') : $element.css('left'))
738
813
  ;
739
-
740
- return pos;
741
814
  },
742
815
  positionFromValue: function (val) {
743
816
  var
@@ -761,6 +834,7 @@
761
834
  position = Math.round(ratio * trackLength),
762
835
  adjustedPos = step === 0 ? position : Math.round(position / step) * step
763
836
  ;
837
+ module.verbose('Determined position: ' + position + ' from ratio: ' + ratio);
764
838
 
765
839
  return adjustedPos;
766
840
  },
@@ -984,12 +1058,12 @@
984
1058
  }
985
1059
  if (!$currThumb.hasClass('second')) {
986
1060
  if (settings.preventCrossover && module.is.range()) {
987
- newValue = Math.min(module.secondThumbVal, newValue);
1061
+ newValue = Math.min(module.secondThumbVal - (settings.minRange || 0), newValue);
988
1062
  }
989
1063
  module.thumbVal = newValue;
990
1064
  } else {
991
1065
  if (settings.preventCrossover && module.is.range()) {
992
- newValue = Math.max(module.thumbVal, newValue);
1066
+ newValue = Math.max(module.thumbVal + (settings.minRange || 0), newValue);
993
1067
  }
994
1068
  module.secondThumbVal = newValue;
995
1069
  }
@@ -1008,6 +1082,10 @@
1008
1082
  thumbVal = module.thumbVal || module.get.min(),
1009
1083
  secondThumbVal = module.secondThumbVal || module.get.min()
1010
1084
  ;
1085
+ if (settings.showThumbTooltip) {
1086
+ var precision = module.get.precision();
1087
+ $targetThumb.attr('data-tooltip', Math.round(newValue * precision) / precision);
1088
+ }
1011
1089
  if (module.is.range()) {
1012
1090
  if (!$targetThumb.hasClass('second')) {
1013
1091
  position = newPos;
@@ -1096,6 +1174,14 @@
1096
1174
  settings: function () {
1097
1175
  if (settings.start !== false) {
1098
1176
  if (module.is.range()) {
1177
+ var rangeDiff = settings.end - settings.start;
1178
+ if (rangeDiff < 0
1179
+ || (settings.minRange && rangeDiff < settings.minRange)
1180
+ || (settings.maxRange && rangeDiff > settings.maxRange)
1181
+ || (settings.minRange && settings.maxRange && settings.minRange > settings.maxRange)
1182
+ ) {
1183
+ module.error(error.invalidRanges, settings.start, settings.end, settings.minRange, settings.maxRange);
1184
+ }
1099
1185
  module.debug('Start position set from settings', settings.start, settings.end);
1100
1186
  module.set.rangeValue(settings.start, settings.end);
1101
1187
  } else {
@@ -1176,7 +1262,7 @@
1176
1262
  });
1177
1263
  }
1178
1264
  clearTimeout(module.performance.timer);
1179
- module.performance.timer = setTimeout(module.performance.display, 500);
1265
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1180
1266
  },
1181
1267
  display: function () {
1182
1268
  var
@@ -1288,6 +1374,7 @@
1288
1374
  error: {
1289
1375
  method: 'The method you called is not defined.',
1290
1376
  notrange: 'This slider is not a range slider',
1377
+ invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
1291
1378
  },
1292
1379
 
1293
1380
  metadata: {
@@ -1300,6 +1387,8 @@
1300
1387
  step: 1,
1301
1388
  start: 0,
1302
1389
  end: 20,
1390
+ minRange: false,
1391
+ maxRange: false,
1303
1392
  labelType: 'number',
1304
1393
  showLabelTicks: false,
1305
1394
  smooth: false,
@@ -1336,6 +1425,13 @@
1336
1425
  downArrow: 40,
1337
1426
  },
1338
1427
 
1428
+ restrictedLabels: [],
1429
+ showThumbTooltip: false,
1430
+ tooltipConfig: {
1431
+ position: 'top center',
1432
+ variation: 'tiny black',
1433
+ },
1434
+
1339
1435
  labelTypes: {
1340
1436
  number: 'number',
1341
1437
  letter: 'letter',
@@ -746,7 +746,7 @@
746
746
  });
747
747
  }
748
748
  clearTimeout(module.performance.timer);
749
- module.performance.timer = setTimeout(module.performance.display, 0);
749
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
750
750
  },
751
751
  display: function () {
752
752
  var
@@ -99,7 +99,7 @@
99
99
  module.bind.events();
100
100
 
101
101
  if (settings.history && !initializedHistory) {
102
- module.initializeHistory();
102
+ settings.history = module.initializeHistory();
103
103
  initializedHistory = true;
104
104
  }
105
105
 
@@ -109,7 +109,7 @@
109
109
  module.debug('No active tab detected, setting tab active', activeTab);
110
110
  module.changeTab(activeTab);
111
111
  }
112
- if (activeTab !== null && settings.history) {
112
+ if (activeTab !== null && settings.history && settings.historyType === 'state') {
113
113
  var autoUpdate = $.address.autoUpdate();
114
114
  $.address.autoUpdate(false);
115
115
  $.address.value(activeTab);
@@ -202,6 +202,8 @@
202
202
  $.address
203
203
  .bind('change', module.event.history.change)
204
204
  ;
205
+
206
+ return true;
205
207
  },
206
208
 
207
209
  event: {
@@ -786,7 +788,7 @@
786
788
  });
787
789
  }
788
790
  clearTimeout(module.performance.timer);
789
- module.performance.timer = setTimeout(module.performance.display, 500);
791
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
790
792
  },
791
793
  display: function () {
792
794
  var