mice 0.2.7 → 0.2.8

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.
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
-