mice 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3bcd6f9973735608132f90dfa76843c6d654b997
4
- data.tar.gz: 5e7ea1129685321a09ccc7496ac59196928aaa61
3
+ metadata.gz: 28210033ea6813cd790bb7dfd993dd179f373777
4
+ data.tar.gz: 0125f51dc850e2dd802194e55eff74a523e05cff
5
5
  SHA512:
6
- metadata.gz: d77212ed41480632c2bd7e9b946d948f1bc69c5cea730435dec58dc612655e69fa2cdd877eafef3f2906e373328b356f2fc7e4d1f59e7d580dfe5b8fb8fe6790
7
- data.tar.gz: 8acc15eb6ac2480ba02e2988352225b3a4109cd3a0870527bb47e7d9ccfb3dc4274df032928ad2927add8317bb30d84856f140fe055fe623b04c277da3328b62
6
+ metadata.gz: 14776b5f0e36c5dc34cab1917733b9e1898fe9f37d8cbabe4df877c5d21b46417dbb34506c81cf252bd1512f786f7f50c35830f38f02902c27790f95022c45a3
7
+ data.tar.gz: 98a039063ca44429204b2d0b9441b2cda116684c219ee5ec4618eef9a0b240294759b973e4ea74cfa7f08b8cee969f800791d56e339dcfa9c20c67c8e6feb1d4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mice (0.2.7)
4
+ mice (0.2.8)
5
5
  sass (~> 3.2)
6
6
 
7
7
  GEM
data/lib/mice/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mice
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.8"
3
3
  end
@@ -0,0 +1,223 @@
1
+ /* ========================================================================
2
+ * Bootstrap: carousel.js v3.2.0
3
+ * http://getbootstrap.com/javascript/#carousel
4
+ * ========================================================================
5
+ * Copyright 2011-2014 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
+ * ======================================================================== */
8
+
9
+
10
+ +function ($) {
11
+ 'use strict';
12
+
13
+ // CAROUSEL CLASS DEFINITION
14
+ // =========================
15
+
16
+ var Carousel = function (element, options) {
17
+ this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
18
+ this.$indicators = this.$element.find('.indicators')
19
+ this.options = options
20
+ this.paused =
21
+ this.sliding =
22
+ this.interval =
23
+ this.$active =
24
+ this.$items = null
25
+
26
+ this.options.pause == 'hover' && this.$element
27
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
28
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
29
+ }
30
+
31
+ Carousel.VERSION = '3.2.0'
32
+
33
+ Carousel.DEFAULTS = {
34
+ interval: 5000,
35
+ pause: 'hover',
36
+ wrap: true
37
+ }
38
+
39
+ Carousel.prototype.keydown = function (e) {
40
+ switch (e.which) {
41
+ case 37: this.prev(); break
42
+ case 39: this.next(); break
43
+ default: return
44
+ }
45
+
46
+ e.preventDefault()
47
+ }
48
+
49
+ Carousel.prototype.cycle = function (e) {
50
+ e || (this.paused = false)
51
+
52
+ this.interval && clearInterval(this.interval)
53
+
54
+ this.options.interval
55
+ && !this.paused
56
+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
57
+
58
+ return this
59
+ }
60
+
61
+ Carousel.prototype.getItemIndex = function (item) {
62
+ this.$items = item.parent().children('.item')
63
+ return this.$items.index(item || this.$active)
64
+ }
65
+
66
+ Carousel.prototype.to = function (pos) {
67
+ var that = this
68
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
69
+
70
+ if (pos > (this.$items.length - 1) || pos < 0) return
71
+
72
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
73
+ if (activeIndex == pos) return this.pause().cycle()
74
+
75
+ return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
76
+ }
77
+
78
+ Carousel.prototype.pause = function (e) {
79
+ e || (this.paused = true)
80
+
81
+ if (this.$element.find('.next, .prev').length && $.support.transition) {
82
+ this.$element.trigger($.support.transition.end)
83
+ this.cycle(true)
84
+ }
85
+
86
+ this.interval = clearInterval(this.interval)
87
+
88
+ return this
89
+ }
90
+
91
+ Carousel.prototype.next = function () {
92
+ if (this.sliding) return
93
+ return this.slide('next')
94
+ }
95
+
96
+ Carousel.prototype.prev = function () {
97
+ if (this.sliding) return
98
+ return this.slide('prev')
99
+ }
100
+
101
+ Carousel.prototype.slide = function (type, next) {
102
+ var $active = this.$element.find('.item.active')
103
+ var $next = next || $active[type]()
104
+ var isCycling = this.interval
105
+ var direction = type == 'next' ? 'left' : 'right'
106
+ var fallback = type == 'next' ? 'first' : 'last'
107
+ var that = this
108
+
109
+ if (!$next.length) {
110
+ if (!this.options.wrap) return
111
+ $next = this.$element.find('.item')[fallback]()
112
+ }
113
+
114
+ if ($next.hasClass('active')) return (this.sliding = false)
115
+
116
+ var relatedTarget = $next[0]
117
+ var slideEvent = $.Event('slide.bs.carousel', {
118
+ relatedTarget: relatedTarget,
119
+ direction: direction
120
+ })
121
+ this.$element.trigger(slideEvent)
122
+ if (slideEvent.isDefaultPrevented()) return
123
+
124
+ this.sliding = true
125
+
126
+ isCycling && this.pause()
127
+
128
+ if (this.$indicators.length) {
129
+ this.$indicators.find('.active').removeClass('active')
130
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
131
+ $nextIndicator && $nextIndicator.addClass('active')
132
+ }
133
+
134
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
135
+ if ($.support.transition && this.$element.hasClass('slide')) {
136
+ $next.addClass(type)
137
+ $next[0].offsetWidth // force reflow
138
+ $active.addClass(direction)
139
+ $next.addClass(direction)
140
+ $active
141
+ .one('miceTransitionEnd', function () {
142
+ $next.removeClass([type, direction].join(' ')).addClass('active')
143
+ $active.removeClass(['active', direction].join(' '))
144
+ that.sliding = false
145
+ setTimeout(function () {
146
+ that.$element.trigger(slidEvent)
147
+ }, 0)
148
+ })
149
+ .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
150
+ } else {
151
+ $active.removeClass('active')
152
+ $next.addClass('active')
153
+ this.sliding = false
154
+ this.$element.trigger(slidEvent)
155
+ }
156
+
157
+ isCycling && this.cycle()
158
+
159
+ return this
160
+ }
161
+
162
+
163
+ // CAROUSEL PLUGIN DEFINITION
164
+ // ==========================
165
+
166
+ function Plugin(option) {
167
+ return this.each(function () {
168
+ var $this = $(this)
169
+ var data = $this.data('bs.carousel')
170
+ var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
171
+ var action = typeof option == 'string' ? option : options.slide
172
+
173
+ if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
174
+ if (typeof option == 'number') data.to(option)
175
+ else if (action) data[action]()
176
+ else if (options.interval) data.pause().cycle()
177
+ })
178
+ }
179
+
180
+ var old = $.fn.carousel
181
+
182
+ $.fn.carousel = Plugin
183
+ $.fn.carousel.Constructor = Carousel
184
+
185
+
186
+ // CAROUSEL NO CONFLICT
187
+ // ====================
188
+
189
+ $.fn.carousel.noConflict = function () {
190
+ $.fn.carousel = old
191
+ return this
192
+ }
193
+
194
+
195
+ // CAROUSEL DATA-API
196
+ // =================
197
+
198
+ $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
199
+ var href
200
+ var $this = $(this)
201
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
202
+ if (!$target.hasClass('carousel')) return
203
+ var options = $.extend({}, $target.data(), $this.data())
204
+ var slideIndex = $this.attr('data-slide-to')
205
+ if (slideIndex) options.interval = false
206
+
207
+ Plugin.call($target, options)
208
+
209
+ if (slideIndex) {
210
+ $target.data('bs.carousel').to(slideIndex)
211
+ }
212
+
213
+ e.preventDefault()
214
+ })
215
+
216
+ $(window).on('load', function () {
217
+ $('[data-ride="carousel"]').each(function () {
218
+ var $carousel = $(this)
219
+ Plugin.call($carousel, $carousel.data())
220
+ })
221
+ })
222
+
223
+ }(jQuery);
@@ -334,6 +334,8 @@
334
334
  selector: 'body'
335
335
  padding: 0
336
336
 
337
+ $ -> $("[data-toggle=tooltip]").tooltip();
338
+
337
339
  return
338
340
 
339
341
  ) jQuery
@@ -1,4 +1,5 @@
1
1
  //= require mice/transition
2
2
  //= require mice/alert
3
3
  //= require mice/modal
4
- //= require mice/tooltip
4
+ //= require mice/tooltip
5
+ //= require mice/carousel
@@ -0,0 +1,243 @@
1
+ //
2
+ // Carousel
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Wrapper for the slide container and indicators
7
+ .carousel {
8
+ position: relative;
9
+
10
+ .inner {
11
+ position: relative;
12
+ overflow: hidden;
13
+ width: 100%;
14
+
15
+ > .item {
16
+ display: none;
17
+ position: relative;
18
+ @include transition(.6s ease-in-out left);
19
+
20
+ // Account for jankitude on images
21
+ > img,
22
+ > a > img {
23
+ @include img-responsive();
24
+ line-height: 1;
25
+ }
26
+ }
27
+
28
+ > .active,
29
+ > .next,
30
+ > .prev {
31
+ display: block;
32
+ }
33
+
34
+ > .active {
35
+ left: 0;
36
+ }
37
+
38
+ > .next,
39
+ > .prev {
40
+ position: absolute;
41
+ top: 0;
42
+ width: 100%;
43
+ }
44
+
45
+ > .next {
46
+ left: 100%;
47
+ }
48
+ > .prev {
49
+ left: -100%;
50
+ }
51
+ > .next.left,
52
+ > .prev.right {
53
+ left: 0;
54
+ }
55
+
56
+ > .active.left {
57
+ left: -100%;
58
+ }
59
+ > .active.right {
60
+ left: 100%;
61
+ }
62
+
63
+ }
64
+
65
+ // Left/right controls for nav
66
+ // ---------------------------
67
+
68
+ .control {
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ bottom: 0;
73
+ width: $carousel-control-width;
74
+ @include opacity($carousel-control-opacity);
75
+ font-size: $carousel-control-font-size;
76
+ color: $carousel-control-color;
77
+ text-align: center;
78
+ text-shadow: $carousel-text-shadow;
79
+ // We can't have this transition here because WebKit cancels the carousel
80
+ // animation if you trip this while in the middle of another animation.
81
+
82
+ // Set gradients for backgrounds
83
+ &.left {
84
+ // @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
85
+ }
86
+ &.right {
87
+ left: auto;
88
+ right: 0;
89
+ // @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
90
+ }
91
+
92
+ // Hover/focus state
93
+ &:hover,
94
+ &:focus {
95
+ outline: 0;
96
+ color: $carousel-control-color;
97
+ text-decoration: none;
98
+ @include opacity(.9);
99
+ }
100
+
101
+ // Toggles
102
+ .icon-prev,
103
+ .icon-next,
104
+ .chevron-left,
105
+ .chevron-right {
106
+ position: absolute;
107
+ top: 50%;
108
+ z-index: 5;
109
+ display: inline-block;
110
+ }
111
+ .icon-prev,
112
+ .chevron-left {
113
+ left: 50%;
114
+ margin-left: -10px;
115
+ }
116
+ .icon-next,
117
+ .chevron-right {
118
+ right: 50%;
119
+ margin-right: -10px;
120
+ }
121
+ .icon-prev,
122
+ .icon-next {
123
+ width: 20px;
124
+ height: 20px;
125
+ margin-top: -10px;
126
+ font-family: serif;
127
+ }
128
+
129
+
130
+ .icon-prev {
131
+ &:before {
132
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
133
+ }
134
+ }
135
+ .icon-next {
136
+ &:before {
137
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
138
+ }
139
+ }
140
+ }
141
+
142
+ // Optional indicator pips
143
+ //
144
+ // Add an unordered list with the following class and add a list item for each
145
+ // slide your carousel holds.
146
+
147
+ .indicators {
148
+ position: absolute;
149
+ bottom: 10px;
150
+ left: 50%;
151
+ z-index: 15;
152
+ width: 60%;
153
+ margin-left: -30%;
154
+ padding-left: 0;
155
+ list-style: none;
156
+ text-align: center;
157
+
158
+ li {
159
+ display: inline-block;
160
+ width: 10px;
161
+ height: 10px;
162
+ margin: 1px;
163
+ text-indent: -999px;
164
+ border: 1px solid $carousel-indicator-border-color;
165
+ border-radius: 10px;
166
+ cursor: pointer;
167
+
168
+ // IE8-9 hack for event handling
169
+ //
170
+ // Internet Explorer 8-9 does not support clicks on elements without a set
171
+ // `background-color`. We cannot use `filter` since that's not viewed as a
172
+ // background color by the browser. Thus, a hack is needed.
173
+ //
174
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
175
+ // set alpha transparency for the best results possible.
176
+ background-color: #000 \9; // IE8
177
+ background-color: rgba(0,0,0,0); // IE9
178
+ }
179
+ .active {
180
+ margin: 0;
181
+ width: 12px;
182
+ height: 12px;
183
+ background-color: $carousel-indicator-active-background;
184
+ }
185
+ }
186
+
187
+ // Optional captions
188
+ // -----------------------------
189
+ // Hidden by default for smaller viewports
190
+ .caption {
191
+ position: absolute;
192
+ left: 15%;
193
+ right: 15%;
194
+ bottom: 20px;
195
+ z-index: 10;
196
+ padding-top: 20px;
197
+ padding-bottom: 20px;
198
+ color: $carousel-caption-color;
199
+ text-align: center;
200
+ text-shadow: $carousel-text-shadow;
201
+ & .btn {
202
+ text-shadow: none; // No shadow for button elements in carousel-caption
203
+ }
204
+ }
205
+ }
206
+
207
+
208
+ // Scale up controls for tablets and up
209
+ @media screen and (min-width: $screen-sm-min) {
210
+
211
+ // Scale up the controls a smidge
212
+ .control {
213
+ .chevron-left,
214
+ .chevron-right,
215
+ .icon-prev,
216
+ .icon-next {
217
+ width: 30px;
218
+ height: 30px;
219
+ margin-top: -15px;
220
+ font-size: 30px;
221
+ }
222
+ .chevron-left,
223
+ .icon-prev {
224
+ margin-left: -15px;
225
+ }
226
+ .chevron-right,
227
+ .icon-next {
228
+ margin-right: -15px;
229
+ }
230
+ }
231
+
232
+ // Show and left align the captions
233
+ .caption {
234
+ left: 20%;
235
+ right: 20%;
236
+ padding-bottom: 30px;
237
+ }
238
+
239
+ // Move up the indicators
240
+ .indicators {
241
+ bottom: 20px;
242
+ }
243
+ }
@@ -2,6 +2,44 @@
2
2
  // Images
3
3
  // --------------------------------------------------
4
4
 
5
+
6
+ // Image Mixins
7
+ // - Responsive image
8
+ // - Retina image
9
+
10
+
11
+ // Responsive image
12
+ //
13
+ // Keep images from scaling beyond the width of their parents.
14
+ @mixin img-responsive($display: block) {
15
+ display: $display;
16
+ width: 100% \9; // Force IE10 and below to size SVG images correctly
17
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
18
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
19
+ }
20
+
21
+
22
+ // Retina image
23
+ //
24
+ // Short retina mixin for setting background-image and -size. Note that the
25
+ // spelling of `min--moz-device-pixel-ratio` is intentional.
26
+ @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
27
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
28
+
29
+ @media
30
+ only screen and (-webkit-min-device-pixel-ratio: 2),
31
+ only screen and ( min--moz-device-pixel-ratio: 2),
32
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
33
+ only screen and ( min-device-pixel-ratio: 2),
34
+ only screen and ( min-resolution: 192dpi),
35
+ only screen and ( min-resolution: 2dppx) {
36
+ background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
37
+ background-size: $width-1x $height-1x;
38
+ }
39
+ }
40
+
41
+
42
+
5
43
  img {
6
44
  vertical-align: middle;
7
45
 
@@ -535,3 +535,20 @@ $tooltip-danger-color: #fff !default;
535
535
  $tooltip-danger-background: $brand-danger !default;
536
536
  $tooltip-danger-arrow-color: $tooltip-danger-background !default;
537
537
 
538
+
539
+ // Carousel
540
+ // --------------------------------------------------
541
+
542
+ $carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
543
+
544
+ $carousel-control-color: #fff !default;
545
+ $carousel-control-width: 15% !default;
546
+ $carousel-control-opacity: .5 !default;
547
+ $carousel-control-font-size: 20px !default;
548
+
549
+ $carousel-indicator-active-background: #fff !default;
550
+ $carousel-indicator-border-color: #fff !default;
551
+
552
+ $carousel-caption-color: #fff !default;
553
+
554
+
@@ -34,9 +34,9 @@
34
34
  @import "mice/progress";
35
35
  @import "mice/alerts";
36
36
  @import "mice/close";
37
- @import "mice/wells";
38
37
  @import "mice/modals";
39
38
  @import "mice/tooltips";
39
+ @import "mice/carousel";
40
40
 
41
41
  // Form
42
42
  @import "mice/forms";
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - miclle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-18 00:00:00.000000000 Z
11
+ date: 2014-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -63,6 +63,7 @@ files:
63
63
  - vendor/assets/javascripts/mice/ZeroClipboard.js
64
64
  - vendor/assets/javascripts/mice/ZeroClipboard.min.js
65
65
  - vendor/assets/javascripts/mice/alert.js
66
+ - vendor/assets/javascripts/mice/carousel.js
66
67
  - vendor/assets/javascripts/mice/jquery.autocomplete.min.js
67
68
  - vendor/assets/javascripts/mice/jquery.email-autocomplete.js
68
69
  - vendor/assets/javascripts/mice/jquery.js
@@ -77,6 +78,7 @@ files:
77
78
  - vendor/assets/stylesheets/mice/_breadcrumbs.scss
78
79
  - vendor/assets/stylesheets/mice/_buttons.scss
79
80
  - vendor/assets/stylesheets/mice/_callouts.scss
81
+ - vendor/assets/stylesheets/mice/_carousel.scss
80
82
  - vendor/assets/stylesheets/mice/_close.scss
81
83
  - vendor/assets/stylesheets/mice/_code.scss
82
84
  - vendor/assets/stylesheets/mice/_component-animations.scss
@@ -105,7 +107,6 @@ files:
105
107
  - vendor/assets/stylesheets/mice/_typography.scss
106
108
  - vendor/assets/stylesheets/mice/_utilities.scss
107
109
  - vendor/assets/stylesheets/mice/_variables.scss
108
- - vendor/assets/stylesheets/mice/_wells.scss
109
110
  - vendor/assets/stylesheets/mobile/bars.scss
110
111
  - vendor/assets/stylesheets/mobile/base.scss
111
112
  - vendor/assets/stylesheets/mobile/cards.scss
@@ -1,29 +0,0 @@
1
- //
2
- // Wells
3
- // --------------------------------------------------
4
-
5
- // Base class
6
- .well {
7
- min-height: 20px;
8
- padding: 19px;
9
- margin-bottom: 20px;
10
- background-color: $well-background;
11
- border: 1px solid $well-border;
12
- border-radius: $border-radius;
13
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
14
- blockquote {
15
- border-color: #ddd;
16
- border-color: rgba(0,0,0,.15);
17
- }
18
-
19
- // Sizes
20
- &.large {
21
- padding: 24px;
22
- border-radius: $border-radius-large;
23
- }
24
- &.small {
25
- padding: 9px;
26
- border-radius: $border-radius-small;
27
- }
28
- }
29
-