fomantic-ui 2.8.8-beta.99 → 2.9.0-beta.100

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 (244) hide show
  1. package/.all-contributorsrc +188 -3
  2. package/.github/dependabot.yml +17 -0
  3. package/.github/workflows/ci.yml +1 -1
  4. package/CHANGELOG.md +139 -0
  5. package/CONTRIBUTING.md +1 -1
  6. package/CONTRIBUTORS.md +71 -37
  7. package/README.md +3 -3
  8. package/dist/components/accordion.css +50 -6
  9. package/dist/components/accordion.js +1 -1
  10. package/dist/components/accordion.min.css +2 -2
  11. package/dist/components/accordion.min.js +3 -3
  12. package/dist/components/ad.css +1 -1
  13. package/dist/components/ad.min.css +1 -1
  14. package/dist/components/api.js +26 -24
  15. package/dist/components/api.min.js +4 -4
  16. package/dist/components/breadcrumb.css +1 -1
  17. package/dist/components/breadcrumb.min.css +1 -1
  18. package/dist/components/button.css +81 -81
  19. package/dist/components/button.min.css +2 -2
  20. package/dist/components/calendar.css +1 -1
  21. package/dist/components/calendar.js +110 -11
  22. package/dist/components/calendar.min.css +1 -1
  23. package/dist/components/calendar.min.js +4 -4
  24. package/dist/components/card.css +26 -19
  25. package/dist/components/card.min.css +2 -2
  26. package/dist/components/checkbox.css +6 -4
  27. package/dist/components/checkbox.js +17 -11
  28. package/dist/components/checkbox.min.css +2 -2
  29. package/dist/components/checkbox.min.js +4 -4
  30. package/dist/components/comment.css +11 -11
  31. package/dist/components/comment.min.css +1 -1
  32. package/dist/components/container.css +3 -4
  33. package/dist/components/container.min.css +2 -2
  34. package/dist/components/dimmer.css +28 -14
  35. package/dist/components/dimmer.js +15 -12
  36. package/dist/components/dimmer.min.css +2 -2
  37. package/dist/components/dimmer.min.js +4 -4
  38. package/dist/components/divider.css +1 -1
  39. package/dist/components/divider.min.css +1 -1
  40. package/dist/components/dropdown.css +54 -7
  41. package/dist/components/dropdown.js +107 -77
  42. package/dist/components/dropdown.min.css +2 -2
  43. package/dist/components/dropdown.min.js +4 -4
  44. package/dist/components/embed.css +1 -1
  45. package/dist/components/embed.js +1 -1
  46. package/dist/components/embed.min.css +1 -1
  47. package/dist/components/embed.min.js +3 -3
  48. package/dist/components/emoji.css +2 -2
  49. package/dist/components/feed.css +28 -28
  50. package/dist/components/feed.min.css +2 -2
  51. package/dist/components/flag.css +731 -625
  52. package/dist/components/flag.min.css +2 -2
  53. package/dist/components/form.css +119 -54
  54. package/dist/components/form.js +51 -70
  55. package/dist/components/form.min.css +2 -2
  56. package/dist/components/form.min.js +4 -4
  57. package/dist/components/grid.css +13 -11
  58. package/dist/components/grid.min.css +2 -2
  59. package/dist/components/header.css +3 -3
  60. package/dist/components/header.min.css +2 -2
  61. package/dist/components/icon.css +86 -5
  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 +17 -2
  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 +39 -37
  74. package/dist/components/loader.min.css +2 -2
  75. package/dist/components/menu.css +37 -11
  76. package/dist/components/menu.min.css +1 -1
  77. package/dist/components/message.css +78 -34
  78. package/dist/components/message.min.css +2 -2
  79. package/dist/components/modal.css +7 -5
  80. package/dist/components/modal.js +237 -41
  81. package/dist/components/modal.min.css +2 -2
  82. package/dist/components/modal.min.js +4 -4
  83. package/dist/components/nag.css +168 -16
  84. package/dist/components/nag.js +131 -65
  85. package/dist/components/nag.min.css +2 -2
  86. package/dist/components/nag.min.js +4 -4
  87. package/dist/components/placeholder.css +1 -1
  88. package/dist/components/placeholder.min.css +1 -1
  89. package/dist/components/popup.css +5 -3
  90. package/dist/components/popup.js +5 -5
  91. package/dist/components/popup.min.css +2 -2
  92. package/dist/components/popup.min.js +4 -4
  93. package/dist/components/progress.css +2 -1
  94. package/dist/components/progress.js +3 -3
  95. package/dist/components/progress.min.css +2 -2
  96. package/dist/components/progress.min.js +4 -4
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +8 -62
  100. package/dist/components/rating.js +1 -1
  101. package/dist/components/rating.min.css +2 -2
  102. package/dist/components/rating.min.js +3 -3
  103. package/dist/components/reset.css +2 -3
  104. package/dist/components/reset.min.css +2 -2
  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 +15 -13
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +4 -4
  111. package/dist/components/segment.css +36 -6
  112. package/dist/components/segment.min.css +2 -2
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +1 -1
  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 +1 -1
  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 +3 -3
  125. package/dist/components/slider.js +1 -1
  126. package/dist/components/slider.min.js +3 -3
  127. package/dist/components/state.js +1 -1
  128. package/dist/components/state.min.js +3 -3
  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 -2
  134. package/dist/components/sticky.js +2 -2
  135. package/dist/components/sticky.min.css +2 -2
  136. package/dist/components/sticky.min.js +4 -4
  137. package/dist/components/tab.css +1 -1
  138. package/dist/components/tab.js +1 -1
  139. package/dist/components/tab.min.css +1 -1
  140. package/dist/components/tab.min.js +3 -3
  141. package/dist/components/table.css +5 -3
  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 +123 -10
  146. package/dist/components/toast.js +54 -27
  147. package/dist/components/toast.min.css +2 -2
  148. package/dist/components/toast.min.js +4 -4
  149. package/dist/components/transition.css +1 -1
  150. package/dist/components/transition.js +2 -2
  151. package/dist/components/transition.min.css +1 -1
  152. package/dist/components/transition.min.js +4 -4
  153. package/dist/components/visibility.js +2 -2
  154. package/dist/components/visibility.min.js +3 -3
  155. package/dist/semantic.css +2004 -1124
  156. package/dist/semantic.js +789 -377
  157. package/dist/semantic.min.css +4 -397
  158. package/dist/semantic.min.js +4 -4
  159. package/examples/assets/library/iframe-content.js +8 -8
  160. package/examples/assets/library/iframe.js +3 -3
  161. package/package.json +5 -5
  162. package/scripts/nightly-version.js +23 -8
  163. package/src/definitions/behaviors/api.js +25 -23
  164. package/src/definitions/behaviors/form.js +50 -69
  165. package/src/definitions/behaviors/visibility.js +1 -1
  166. package/src/definitions/collections/form.less +200 -142
  167. package/src/definitions/collections/grid.less +717 -681
  168. package/src/definitions/collections/menu.less +177 -128
  169. package/src/definitions/collections/message.less +77 -44
  170. package/src/definitions/collections/table.less +255 -242
  171. package/src/definitions/elements/button.less +360 -347
  172. package/src/definitions/elements/container.less +16 -8
  173. package/src/definitions/elements/emoji.less +15 -9
  174. package/src/definitions/elements/flag.less +7 -17
  175. package/src/definitions/elements/header.less +44 -37
  176. package/src/definitions/elements/icon.less +121 -43
  177. package/src/definitions/elements/input.less +23 -7
  178. package/src/definitions/elements/label.less +92 -91
  179. package/src/definitions/elements/list.less +55 -45
  180. package/src/definitions/elements/loader.less +38 -35
  181. package/src/definitions/elements/segment.less +51 -23
  182. package/src/definitions/elements/step.less +52 -48
  183. package/src/definitions/elements/text.less +17 -15
  184. package/src/definitions/globals/site.less +23 -2
  185. package/src/definitions/modules/accordion.less +55 -5
  186. package/src/definitions/modules/calendar.js +109 -10
  187. package/src/definitions/modules/checkbox.js +16 -10
  188. package/src/definitions/modules/checkbox.less +44 -186
  189. package/src/definitions/modules/dimmer.js +14 -11
  190. package/src/definitions/modules/dimmer.less +21 -8
  191. package/src/definitions/modules/dropdown.js +106 -76
  192. package/src/definitions/modules/dropdown.less +148 -89
  193. package/src/definitions/modules/modal.js +236 -40
  194. package/src/definitions/modules/modal.less +6 -4
  195. package/src/definitions/modules/nag.js +130 -64
  196. package/src/definitions/modules/nag.less +105 -40
  197. package/src/definitions/modules/popup.js +4 -4
  198. package/src/definitions/modules/popup.less +5 -1
  199. package/src/definitions/modules/progress.js +2 -2
  200. package/src/definitions/modules/progress.less +20 -18
  201. package/src/definitions/modules/rating.less +50 -42
  202. package/src/definitions/modules/search.js +14 -12
  203. package/src/definitions/modules/search.less +32 -16
  204. package/src/definitions/modules/sidebar.less +33 -19
  205. package/src/definitions/modules/slider.less +43 -42
  206. package/src/definitions/modules/sticky.js +1 -1
  207. package/src/definitions/modules/toast.js +53 -26
  208. package/src/definitions/modules/toast.less +139 -25
  209. package/src/definitions/modules/transition.js +1 -1
  210. package/src/definitions/views/card.less +402 -361
  211. package/src/definitions/views/comment.less +92 -81
  212. package/src/definitions/views/feed.less +164 -144
  213. package/src/definitions/views/item.less +249 -196
  214. package/src/definitions/views/statistic.less +90 -88
  215. package/src/themes/default/collections/grid.variables +8 -8
  216. package/src/themes/default/collections/menu.variables +6 -0
  217. package/src/themes/default/collections/table.variables +1 -1
  218. package/src/themes/default/elements/button.variables +2 -1
  219. package/src/themes/default/elements/flag.overrides +1635 -986
  220. package/src/themes/default/elements/flag.variables +7 -5
  221. package/src/themes/default/elements/header.variables +2 -2
  222. package/src/themes/default/elements/icon.overrides +35 -28
  223. package/src/themes/default/elements/icon.variables +4 -0
  224. package/src/themes/default/elements/list.variables +1 -1
  225. package/src/themes/default/elements/step.overrides +1 -1
  226. package/src/themes/default/globals/colors.less +7 -7
  227. package/src/themes/default/globals/site.variables +19 -9
  228. package/src/themes/default/globals/variation.variables +119 -6
  229. package/src/themes/default/modules/accordion.variables +15 -0
  230. package/src/themes/default/modules/checkbox.variables +16 -16
  231. package/src/themes/default/modules/dimmer.variables +1 -1
  232. package/src/themes/default/modules/dropdown.variables +12 -5
  233. package/src/themes/default/modules/modal.variables +2 -2
  234. package/src/themes/default/modules/nag.variables +3 -1
  235. package/src/themes/default/modules/toast.variables +5 -1
  236. package/src/themes/default/views/card.variables +1 -1
  237. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  238. package/src/themes/famfamfam/elements/flag.variables +13 -0
  239. package/tasks/admin/components/init.js +2 -2
  240. package/tasks/admin/distributions/init.js +2 -2
  241. package/tasks/build/css.js +6 -1
  242. package/tasks/config/project/release.js +2 -2
  243. package/tasks/config/tasks.js +13 -9
  244. package/test/helpers/sinon.js +1 -1
@@ -290,8 +290,10 @@
290
290
  right: 50%;
291
291
  transform: translateY(-50%) translateX(50%) rotate(45deg);
292
292
  }
293
- .ui.vertical.steps .active.step:last-child:after {
294
- display: none;
293
+ & when (@variationStepVertical) {
294
+ .ui.vertical.steps .active.step:last-child:after {
295
+ display: none;
296
+ }
295
297
  }
296
298
  /* Content */
297
299
  .ui.steps:not(.unstackable) .step .content {
@@ -493,53 +495,55 @@
493
495
  }
494
496
  }
495
497
 
496
- /*-------------------
497
- Evenly Divided
498
- --------------------*/
498
+ & when (@variationStepEqualWidth) {
499
+ /*-------------------
500
+ Evenly Divided
501
+ --------------------*/
499
502
 
500
- .ui.one.steps,
501
- .ui.two.steps,
502
- .ui.three.steps,
503
- .ui.four.steps,
504
- .ui.five.steps,
505
- .ui.six.steps,
506
- .ui.seven.steps,
507
- .ui.eight.steps {
508
- width: 100%;
509
- }
510
- .ui.one.steps > .step,
511
- .ui.two.steps > .step,
512
- .ui.three.steps > .step,
513
- .ui.four.steps > .step,
514
- .ui.five.steps > .step,
515
- .ui.six.steps > .step,
516
- .ui.seven.steps > .step,
517
- .ui.eight.steps > .step {
518
- flex-wrap: nowrap;
519
- }
520
- .ui.one.steps > .step {
521
- width: 100%;
522
- }
523
- .ui.two.steps > .step {
524
- width: 50%;
525
- }
526
- .ui.three.steps > .step {
527
- width: 33.333%;
528
- }
529
- .ui.four.steps > .step {
530
- width: 25%;
531
- }
532
- .ui.five.steps > .step {
533
- width: 20%;
534
- }
535
- .ui.six.steps > .step {
536
- width: 16.666%;
537
- }
538
- .ui.seven.steps > .step {
539
- width: 14.285%;
540
- }
541
- .ui.eight.steps > .step {
542
- width: 12.500%;
503
+ .ui.one.steps,
504
+ .ui.two.steps,
505
+ .ui.three.steps,
506
+ .ui.four.steps,
507
+ .ui.five.steps,
508
+ .ui.six.steps,
509
+ .ui.seven.steps,
510
+ .ui.eight.steps {
511
+ width: 100%;
512
+ }
513
+ .ui.one.steps > .step,
514
+ .ui.two.steps > .step,
515
+ .ui.three.steps > .step,
516
+ .ui.four.steps > .step,
517
+ .ui.five.steps > .step,
518
+ .ui.six.steps > .step,
519
+ .ui.seven.steps > .step,
520
+ .ui.eight.steps > .step {
521
+ flex-wrap: nowrap;
522
+ }
523
+ .ui.one.steps > .step {
524
+ width: 100%;
525
+ }
526
+ .ui.two.steps > .step {
527
+ width: 50%;
528
+ }
529
+ .ui.three.steps > .step {
530
+ width: 33.333%;
531
+ }
532
+ .ui.four.steps > .step {
533
+ width: 25%;
534
+ }
535
+ .ui.five.steps > .step {
536
+ width: 20%;
537
+ }
538
+ .ui.six.steps > .step {
539
+ width: 16.666%;
540
+ }
541
+ .ui.seven.steps > .step {
542
+ width: 14.285%;
543
+ }
544
+ .ui.eight.steps > .step {
545
+ width: 12.500%;
546
+ }
543
547
  }
544
548
 
545
549
  /*-------------------
@@ -26,24 +26,26 @@ span.ui.text {
26
26
  line-height: @lineHeight;
27
27
  }
28
28
 
29
- each(@colors, {
30
- @color: replace(@key, '@', '');
31
- @c: @colors[@@color][color];
32
- @l: @colors[@@color][light];
29
+ & when not (@variationTextColors = false) {
30
+ each(@variationTextColors, {
31
+ @color: @value;
32
+ @c: @colors[@@color][color];
33
+ @l: @colors[@@color][light];
33
34
 
34
- span.ui.@{color}.text {
35
- color: @c;
36
- }
37
- & when (@variationTextInverted) {
38
- span.ui.inverted.@{color}.text {
39
- color: @l;
35
+ span.ui.@{color}.text {
36
+ color: @c;
40
37
  }
41
- }
42
- })
38
+ & when (@variationTextInverted) {
39
+ span.ui.inverted.@{color}.text {
40
+ color: @l;
41
+ }
42
+ }
43
+ })
44
+ }
43
45
 
44
- & when (@variationTextStates) {
45
- each(@textStates, {
46
- @state: replace(@key, '@', '');
46
+ & when not (@variationTextStates = false) {
47
+ each(@variationTextStates, {
48
+ @state: @value;
47
49
  @c: @textStates[@@state][color];
48
50
 
49
51
  span.ui.@{state}.text {
@@ -128,7 +128,7 @@ a:hover {
128
128
  Scrollbars
129
129
  *******************************/
130
130
 
131
- .addScrollbars() when (@useCustomScrollbars) {
131
+ & when (@useCustomScrollbars) {
132
132
 
133
133
  /* Force Simple Scrollbars */
134
134
  body ::-webkit-scrollbar {
@@ -152,6 +152,17 @@ a:hover {
152
152
  body ::-webkit-scrollbar-thumb:hover {
153
153
  background: @thumbHoverBackground;
154
154
  }
155
+ body .ui {
156
+ /* IE11 */
157
+ scrollbar-face-color: @thumbBackgroundHex;
158
+ scrollbar-shadow-color: @thumbBackgroundHex;
159
+ scrollbar-track-color: @trackBackgroundHex;
160
+ scrollbar-arrow-color: @trackBackgroundHex;
161
+
162
+ /* firefox : first color thumb, second track*/
163
+ scrollbar-color: @thumbBackground @trackBackground;
164
+ scrollbar-width: thin;
165
+ }
155
166
 
156
167
  /* Inverted UI */
157
168
  body .ui.inverted:not(.dimmer)::-webkit-scrollbar-track {
@@ -166,6 +177,17 @@ a:hover {
166
177
  body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:hover {
167
178
  background: @thumbInvertedHoverBackground;
168
179
  }
180
+
181
+ body .ui.inverted:not(.dimmer) {
182
+ /* IE11 */
183
+ scrollbar-face-color: @thumbInvertedBackgroundHex;
184
+ scrollbar-shadow-color: @thumbInvertedBackgroundHex;
185
+ scrollbar-track-color: @trackInvertedBackgroundHex;
186
+ scrollbar-arrow-color: @trackInvertedBackgroundHex;
187
+
188
+ /* firefox : first color thumb, second track */
189
+ scrollbar-color: @thumbInvertedBackground @trackInvertedBackground;
190
+ }
169
191
  }
170
192
 
171
193
  /*******************************
@@ -203,5 +225,4 @@ input::selection {
203
225
  color: @inputHighlightColor;
204
226
  }
205
227
 
206
- .addScrollbars();
207
228
  .loadUIOverrides();
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  /* Default Styling */
40
- .ui.accordion .title:not(.ui) {
40
+ .ui.accordion .title {
41
41
  padding: @titlePadding;
42
42
  font-family: @titleFont;
43
43
  font-size: @titleFontSize;
@@ -45,12 +45,12 @@
45
45
  }
46
46
 
47
47
  /* Default Styling */
48
- .ui.accordion:not(.styled) .title ~ .content:not(.ui),
49
- .ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
48
+ .ui.accordion:not(.styled) .title ~ .content,
49
+ .ui.accordion:not(.styled) .accordion .title ~ .content {
50
50
  margin: @contentMargin;
51
51
  padding: @contentPadding;
52
52
  }
53
- .ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
53
+ .ui.accordion:not(.styled) .title ~ .content:last-child {
54
54
  padding-bottom: 0;
55
55
  }
56
56
 
@@ -176,6 +176,56 @@
176
176
  }
177
177
  }
178
178
 
179
+ & when (@variationAccordionCompact) {
180
+ /*--------------
181
+ Compact
182
+ ---------------*/
183
+
184
+ /* Default Styling */
185
+ .ui.compact.accordion:not(.styled) .title {
186
+ padding: @titlePaddingCompact;
187
+ }
188
+
189
+ .ui.compact.accordion:not(.styled) .title ~ .content,
190
+ .ui.compact.accordion:not(.styled) .accordion .title ~ .content {
191
+ padding: @contentPaddingCompact;
192
+ }
193
+
194
+ /* Styled */
195
+ .ui.compact.styled.accordion .title,
196
+ .ui.compact.styled.accordion .accordion .title {
197
+ padding: @styledTitlePaddingCompact;
198
+ }
199
+
200
+ .ui.compact.styled.accordion .title ~ .content,
201
+ .ui.compact.styled.accordion .accordion .title ~ .content {
202
+ padding: @styledContentPaddingCompact;
203
+ }
204
+
205
+ /*--------------
206
+ Very Compact
207
+ ---------------*/
208
+
209
+ .ui[class*="very compact"].accordion:not(.styled) .title {
210
+ padding: @titlePaddingVeryCompact;
211
+ }
212
+
213
+ .ui[class*="very compact"].accordion:not(.styled) .title ~ .content,
214
+ .ui[class*="very compact"].accordion:not(.styled) .accordion .title ~ .content {
215
+ padding: @contentPaddingVeryCompact;
216
+ }
217
+
218
+ .ui[class*="very compact"].styled.accordion .title,
219
+ .ui[class*="very compact"].styled.accordion .accordion .title {
220
+ padding: @styledTitlePaddingVeryCompact;
221
+ }
222
+
223
+ .ui[class*="very compact"].styled.accordion .title ~ .content,
224
+ .ui[class*="very compact"].styled.accordion .accordion .title ~ .content {
225
+ padding: @styledContentPaddingVeryCompact;
226
+ }
227
+ }
228
+
179
229
 
180
230
  /*******************************
181
231
  States
@@ -210,7 +260,7 @@
210
260
  Inverted
211
261
  ---------------*/
212
262
 
213
- .ui.inverted.accordion .title:not(.ui) {
263
+ .ui.inverted.accordion .title {
214
264
  color: @invertedTitleColor;
215
265
  }
216
266
  }
@@ -122,7 +122,7 @@ $.fn.calendar = function(parameters) {
122
122
  module.set.maxDate($module.data(metadata.maxDate));
123
123
  }
124
124
  module.setting('type', module.get.type());
125
- module.setting('on', settings.on || ($input.length ? 'focus' : 'click'));
125
+ module.setting('on', settings.on || 'click');
126
126
  },
127
127
  popup: function () {
128
128
  if (settings.inline) {
@@ -153,7 +153,10 @@ $.fn.calendar = function(parameters) {
153
153
  module.refreshTooltips();
154
154
  return settings.onVisible.apply($container, arguments);
155
155
  };
156
- var onHidden = settings.onHidden;
156
+ var onHidden = function () {
157
+ module.blur();
158
+ return settings.onHidden.apply($container, arguments)
159
+ }
157
160
  if (!$input.length) {
158
161
  //no input, $container has to handle focus/blur
159
162
  $container.attr('tabindex', '0');
@@ -162,10 +165,6 @@ $.fn.calendar = function(parameters) {
162
165
  module.focus();
163
166
  return settings.onVisible.apply($container, arguments);
164
167
  };
165
- onHidden = function () {
166
- module.blur();
167
- return settings.onHidden.apply($container, arguments);
168
- };
169
168
  }
170
169
  var onShow = function () {
171
170
  //reset the focus date onShow
@@ -390,6 +389,19 @@ $.fn.calendar = function(parameters) {
390
389
  cell.attr("data-variation", disabledDate[metadata.variation]);
391
390
  }
392
391
  }
392
+ if (mode === 'hour') {
393
+ var disabledHour = module.helper.findHourAsObject(cellDate, mode, settings.disabledHours);
394
+ if (disabledHour !== null && disabledHour[metadata.message]) {
395
+ cell.attr("data-tooltip", disabledHour[metadata.message]);
396
+ cell.attr("data-position", disabledHour[metadata.position] || tooltipPosition);
397
+ if(disabledHour[metadata.inverted] || (isInverted && disabledHour[metadata.inverted] === undefined)) {
398
+ cell.attr("data-inverted", '');
399
+ }
400
+ if(disabledHour[metadata.variation]) {
401
+ cell.attr("data-variation", disabledHour[metadata.variation]);
402
+ }
403
+ }
404
+ }
393
405
  } else {
394
406
  eventDate = module.helper.findDayAsObject(cellDate, mode, settings.eventDates);
395
407
  if (eventDate !== null) {
@@ -611,7 +623,9 @@ $.fn.calendar = function(parameters) {
611
623
  var mode = module.get.mode();
612
624
  var date = module.get.focusDate();
613
625
  if (date && !settings.isDisabled(date, mode) && !module.helper.isDisabled(date, mode) && module.helper.isEnabled(date, mode)) {
614
- module.selectDate(date);
626
+ if (settings.onSelect.call(element, date, module.get.mode()) !== false) {
627
+ module.selectDate(date);
628
+ }
615
629
  }
616
630
  //disable form submission:
617
631
  event.preventDefault();
@@ -923,6 +937,7 @@ $.fn.calendar = function(parameters) {
923
937
  //if this is a range calendar, focus the container or input. This will open the popup from its event listeners.
924
938
  var endModule = module.get.calendarModule(settings.endCalendar);
925
939
  if (endModule) {
940
+ endModule.refresh();
926
941
  if (endModule.setting('on') !== 'focus') {
927
942
  endModule.popup('show');
928
943
  }
@@ -972,7 +987,7 @@ $.fn.calendar = function(parameters) {
972
987
 
973
988
  helper: {
974
989
  isDisabled: function(date, mode) {
975
- return (mode === 'day' || mode === 'month' || mode === 'year') && ((settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
990
+ return (mode === 'day' || mode === 'month' || mode === 'year' || mode === 'hour') && (((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
976
991
  if(typeof d === 'string') {
977
992
  d = module.helper.sanitiseDate(d);
978
993
  }
@@ -1005,7 +1020,45 @@ $.fn.calendar = function(parameters) {
1005
1020
  }
1006
1021
  }
1007
1022
  }
1008
- }));
1023
+ })) || (mode === 'hour' && settings.disabledHours.some(function(d){
1024
+ if (typeof d === 'string') {
1025
+ d = module.helper.sanitiseDate(d);
1026
+ }
1027
+ if (d instanceof Date) {
1028
+ return module.helper.dateEqual(date, d, mode);
1029
+ } else if (typeof d === 'number') {
1030
+ return date.getHours() === d;
1031
+ }
1032
+ if (d !== null && typeof d === 'object') {
1033
+ var blocked = true;
1034
+
1035
+ if (d[metadata.date]) {
1036
+ if (d[metadata.date] instanceof Date) {
1037
+ blocked = module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]));
1038
+ } else if (Array.isArray(d[metadata.date])) {
1039
+ return d[metadata.date].some(function(idate) {
1040
+ blocked = module.helper.dateEqual(date, idate, mode);
1041
+ });
1042
+ }
1043
+ }
1044
+
1045
+ if (d[metadata.days]) {
1046
+ if (typeof d[metadata.days] === 'number') {
1047
+ blocked = date.getDay() == d[metadata.days];
1048
+ } else if (Array.isArray(d[metadata.days])) {
1049
+ blocked = d[metadata.days].indexOf(date.getDay()) > -1;
1050
+ }
1051
+ }
1052
+
1053
+ if (d[metadata.hours]) {
1054
+ if (typeof d[metadata.hours] === 'number') {
1055
+ return blocked && date.getHours() == d[metadata.hours];
1056
+ } else if (Array.isArray(d[metadata.hours])) {
1057
+ return blocked && d[metadata.hours].indexOf(date.getHours()) > -1;
1058
+ }
1059
+ }
1060
+ }
1061
+ })));
1009
1062
  },
1010
1063
  isEnabled: function(date, mode) {
1011
1064
  if (mode === 'day') {
@@ -1073,6 +1126,49 @@ $.fn.calendar = function(parameters) {
1073
1126
  }
1074
1127
  return null;
1075
1128
  },
1129
+ findHourAsObject: function(date, mode, hours) {
1130
+ if (mode === 'hour') {
1131
+ var d;
1132
+ var hourCheck = function(date, d) {
1133
+ if (d[metadata.hours]) {
1134
+ if (typeof d[metadata.hours] === 'number' && date.getHours() == d[metadata.hours]) {
1135
+ return d;
1136
+ } else if (Array.isArray(d[metadata.hours])) {
1137
+ if (d[metadata.hours].indexOf(date.getHours()) > -1) {
1138
+ return d;
1139
+ }
1140
+ }
1141
+ }
1142
+ }
1143
+ for (var i = 0; i < hours.length; i++) {
1144
+ d = hours[i];
1145
+ if (typeof d === 'number' && date.getHours() == d) {
1146
+ return null;
1147
+ } else if (d !== null && typeof d === 'object') {
1148
+ if (d[metadata.days] && hourCheck(date,d)) {
1149
+ if (typeof d[metadata.days] === 'number' && date.getDay() == d[metadata.days]) {
1150
+ return d;
1151
+ } else if (Array.isArray(d[metadata.days])) {
1152
+ if (d[metadata.days].indexOf(date.getDay()) > -1) {
1153
+ return d;
1154
+ }
1155
+ }
1156
+ } else if (d[metadata.date] && hourCheck(date,d)) {
1157
+ if (d[metadata.date] instanceof Date && module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]))) {
1158
+ return d;
1159
+ } else if (Array.isArray(d[metadata.date])) {
1160
+ if (d[metadata.date].some(function(idate) { return module.helper.dateEqual(date, idate, mode); })) {
1161
+ return d;
1162
+ }
1163
+ }
1164
+ } else if (hourCheck(date,d)) {
1165
+ return d;
1166
+ }
1167
+ }
1168
+ }
1169
+ }
1170
+ return null;
1171
+ },
1076
1172
  sanitiseDate: function (date) {
1077
1173
  if (!(date instanceof Date)) {
1078
1174
  date = parser.date('' + date, settings);
@@ -1358,6 +1454,7 @@ $.fn.calendar.settings = {
1358
1454
  multiMonth : 1, // show multiple months when in 'day' mode
1359
1455
  minTimeGap : 5,
1360
1456
  showWeekNumbers : null, // show Number of Week at the very first column of a dayView
1457
+ disabledHours : [], // specific hour(s) which won't be selectable and contain additional information.
1361
1458
  disabledDates : [], // specific day(s) which won't be selectable and contain additional information.
1362
1459
  disabledDaysOfWeek : [], // day(s) which won't be selectable(s) (0 = Sunday)
1363
1460
  enabledDates : [], // specific day(s) which will be selectable, all other days will be disabled
@@ -1763,7 +1860,9 @@ $.fn.calendar.settings = {
1763
1860
  variation: 'variation',
1764
1861
  position: 'position',
1765
1862
  month: 'month',
1766
- year: 'year'
1863
+ year: 'year',
1864
+ hours: 'hours',
1865
+ days: 'days'
1767
1866
  },
1768
1867
 
1769
1868
  eventClass: 'blue'
@@ -239,18 +239,26 @@ $.fn.checkbox = function(parameters) {
239
239
  }
240
240
  }
241
241
 
242
+ shortcutPressed = false;
242
243
  if(key == keyCode.escape) {
243
244
  module.verbose('Escape key pressed blurring field');
244
245
  $input.blur();
245
246
  shortcutPressed = true;
246
247
  }
247
- else if(!event.ctrlKey && ( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey)) ) {
248
- module.verbose('Enter/space key pressed, toggling checkbox');
249
- module.toggle();
250
- shortcutPressed = true;
251
- }
252
- else {
253
- shortcutPressed = false;
248
+ else if(!event.ctrlKey && module.can.change()) {
249
+ if( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey) ) {
250
+ module.verbose('Enter/space key pressed, toggling checkbox');
251
+ module.toggle();
252
+ shortcutPressed = true;
253
+ } else if($module.is('.toggle, .slider') && !module.is.radio()) {
254
+ if(key == keyCode.left && module.is.checked()) {
255
+ module.uncheck();
256
+ shortcutPressed = true;
257
+ } else if(key == keyCode.right && module.is.unchecked()) {
258
+ module.check();
259
+ shortcutPressed = true;
260
+ }
261
+ }
254
262
  }
255
263
  },
256
264
  keyup: function(event) {
@@ -323,7 +331,6 @@ $.fn.checkbox = function(parameters) {
323
331
  settings.onEnable.call(input);
324
332
  // preserve legacy callbacks
325
333
  settings.onEnabled.call(input);
326
- module.trigger.change();
327
334
  }
328
335
  },
329
336
 
@@ -338,7 +345,6 @@ $.fn.checkbox = function(parameters) {
338
345
  settings.onDisable.call(input);
339
346
  // preserve legacy callbacks
340
347
  settings.onDisabled.call(input);
341
- module.trigger.change();
342
348
  }
343
349
  },
344
350
 
@@ -866,7 +872,7 @@ $.fn.checkbox.settings = {
866
872
 
867
873
  selector : {
868
874
  checkbox : '.ui.checkbox',
869
- label : 'label, .box',
875
+ label : 'label',
870
876
  input : 'input[type="checkbox"], input[type="radio"]',
871
877
  link : 'a[href]'
872
878
  }