ratchet_design 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/ratchet/favicon.ico +0 -0
- data/app/assets/images/ratchet/safari-pinned-tab.svg +1 -0
- data/app/assets/javascripts/ratchet/base/form.js +9 -118
- data/app/assets/javascripts/ratchet/base/mobilemenu.js +12 -50
- data/app/assets/javascripts/ratchet/base/sync-input-value.js +30 -0
- data/app/assets/javascripts/ratchet/core.js +58 -77
- data/app/assets/javascripts/ratchet/enhancement/_collapse.js +3 -6
- data/app/assets/javascripts/ratchet/enhancement/_swap.js +3 -7
- data/app/assets/javascripts/ratchet/enhancement/lightbox.js +165 -0
- data/app/assets/javascripts/ratchet/enhancement/notice.js +8 -3
- data/app/assets/javascripts/ratchet/enhancement/sticky.js +18 -35
- data/app/assets/javascripts/ratchet/enhancement/waypoints.js +125 -162
- data/app/assets/javascripts/ratchet/shim/scope.js +94 -0
- data/app/assets/javascripts/ratchet/{enhancement → utility}/loader.js +15 -8
- data/app/assets/stylesheets/ratchet/_core.scss +4 -1
- data/app/assets/stylesheets/ratchet/base/_button.scss +3 -3
- data/app/assets/stylesheets/ratchet/base/_form.scss +63 -47
- data/app/assets/stylesheets/ratchet/base/_multistep-form.scss +64 -0
- data/app/assets/stylesheets/ratchet/base/_text.scss +15 -15
- data/app/assets/stylesheets/ratchet/enhancement/_lightbox.scss +98 -0
- data/app/assets/stylesheets/ratchet/enhancement/_tooltip.scss +142 -0
- data/app/assets/stylesheets/ratchet/fonts-woff.css +4 -4
- data/app/assets/stylesheets/ratchet/fonts-woff2.css +4 -4
- data/app/assets/stylesheets/ratchet/utility/_global.scss +3 -13
- data/app/assets/stylesheets/ratchet/{enhancement → utility}/_loader.scss +1 -1
- data/app/helpers/ratchet/application_helper.rb +6 -12
- data/app/helpers/ratchet/form_helper.rb +140 -0
- data/app/views/layouts/ratchet/default.html.slim +3 -2
- data/app/views/shared/ratchet/_footer.html.slim +1 -1
- data/app/views/shared/ratchet/_header.html.slim +1 -1
- data/lib/ratchet_design/version.rb +1 -1
- data/lib/ratchet_design.rb +24 -4
- data/public/assets/ratchet/core-0.1.2.js +133 -0
- data/public/assets/ratchet/core-0.1.2.js.gz +0 -0
- data/public/assets/ratchet/core-0.1.2.map.json +1 -0
- data/public/assets/ratchet/core-0.1.20.js +20472 -0
- data/public/assets/ratchet/{fonts-woff-0.1.1.css → fonts-woff-0.1.2.css} +4 -4
- data/public/assets/ratchet/{fonts-woff-0.1.1.css.gz → fonts-woff-0.1.2.css.gz} +0 -0
- data/public/assets/ratchet/{fonts-woff2-0.1.1.css → fonts-woff2-0.1.2.css} +4 -4
- data/public/assets/ratchet/{fonts-woff2-0.1.1.css.gz → fonts-woff2-0.1.2.css.gz} +0 -0
- metadata +48 -27
- data/app/assets/javascripts/ratchet/base/validation.js +0 -263
- data/app/assets/javascripts/ratchet/enhancement/_lightbox.js +0 -93
- data/app/assets/javascripts/ratchet/shim/classlist.js +0 -234
- data/app/assets/javascripts/ratchet/shim/object.assign.js +0 -30
- data/app/assets/javascripts/ratchet/utility/compile_data.js +0 -32
- data/app/assets/javascripts/ratchet/utility/from_top.js +0 -14
- data/app/assets/javascripts/ratchet/utility/full_stop.js +0 -55
- data/app/assets/javascripts/ratchet/utility/get_closest.js +0 -20
- data/app/assets/javascripts/ratchet/utility/get_next.js +0 -17
- data/app/assets/javascripts/ratchet/utility/matches.js +0 -15
- data/app/assets/javascripts/ratchet/utility/scroll_to.js +0 -74
- data/app/assets/javascripts/ratchet/utility/throttle.js +0 -25
- data/app/assets/javascripts/ratchet/utility/timeout.js +0 -45
- data/app/assets/javascripts/ratchet/utility/unhover.js +0 -56
- data/app/assets/javascripts/ratchet/utility/word_count.js +0 -15
- data/app/assets/stylesheets/ratchet/enhancement/_signup.scss +0 -206
- data/public/assets/ratchet/core-0.1.1.js +0 -103
- data/public/assets/ratchet/core-0.1.1.js.gz +0 -0
- data/public/assets/ratchet/core-0.1.1.map.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6297919184307b0129029a416712ee65e6c1d94
|
4
|
+
data.tar.gz: 83c451f5339b4c0f4e83959962459f6733a618b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5dc301107da8ff1a7f52a96e9e3d183d6adb48605c11a71d8546bb6942aa60f3e7885fe4594a5cf2546a1e268c5781bd7eeedd4516eaaafbdce903370b4f2e7
|
7
|
+
data.tar.gz: 80fb37a9190e8ad60ad1aef7c89efa0c74aaa5f7e747a469635a7bcc63f23e71cfe1de0094cc0e895a7d34b612d734598012c10b903924080e28e1ada1962d87
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M11.251 24.382l-4.844-8.414 4.844-8.35h9.562l4.78 8.35-4.78 8.414h-9.562zM16.103 0c.781.008 1.56.067 2.331.185 1.431.218 2.83.633 4.149 1.23 1.698.768 3.258 1.836 4.592 3.139 1.263 1.233 2.321 2.674 3.117 4.25.664 1.315 1.144 2.722 1.421 4.169.326 1.698.374 3.449.145 5.162-.218 1.631-.69 3.226-1.396 4.712-.812 1.712-1.931 3.275-3.287 4.599-1.427 1.393-3.112 2.518-4.949 3.295-1.933.818-4.024 1.245-6.123 1.258-2.102.014-4.202-.387-6.149-1.183-1.847-.755-3.547-1.86-4.991-3.237-1.371-1.307-2.508-2.856-3.341-4.557-.722-1.475-1.214-3.062-1.452-4.687-.251-1.711-.224-3.463.08-5.165.266-1.484.744-2.929 1.415-4.279.786-1.581 1.836-3.029 3.092-4.27 1.302-1.287 2.824-2.35 4.484-3.125 1.309-.612 2.701-1.043 4.127-1.28.768-.127 1.544-.196 2.323-.213l.412-.003zm-.194 1.913c-.688.006-1.374.058-2.054.162-1.259.192-2.49.557-3.649 1.082-1.419.642-2.729 1.521-3.862 2.589-1.152 1.086-2.12 2.364-2.851 3.768-.611 1.174-1.054 2.435-1.311 3.734-.302 1.522-.35 3.096-.145 4.634.188 1.406.591 2.782 1.192 4.068.706 1.512 1.684 2.895 2.872 4.069 1.249 1.234 2.727 2.233 4.34 2.927 1.695.73 3.531 1.117 5.377 1.14 1.852.024 3.705-.317 5.425-1.008 1.631-.655 3.134-1.619 4.413-2.824 1.235-1.164 2.258-2.549 3.005-4.073.635-1.298 1.068-2.693 1.277-4.123.225-1.537.197-3.111-.087-4.638-.241-1.303-.669-2.571-1.266-3.754-.701-1.388-1.633-2.658-2.746-3.744-1.113-1.087-2.406-1.99-3.812-2.657-1.147-.545-2.369-.932-3.621-1.148-.675-.116-1.357-.18-2.042-.2l-.455-.004z" /></svg>
|
@@ -1,18 +1,17 @@
|
|
1
1
|
/**
|
2
2
|
* Form 0.0.1
|
3
|
-
*
|
3
|
+
* Ratchet forms module
|
4
4
|
* @author Kyle Foster (@hkfoster)
|
5
5
|
* @license MIT
|
6
6
|
**/
|
7
7
|
|
8
|
-
|
9
|
-
var evt = require( 'compose-event' );
|
8
|
+
var toolbox = require( 'compose-toolbox' )
|
10
9
|
|
11
10
|
// Public API function
|
12
11
|
var form = function( element, settings ) {
|
13
12
|
|
14
13
|
// Overridable defaults
|
15
|
-
var defaults = {}
|
14
|
+
var defaults = {}
|
16
15
|
|
17
16
|
// Parameter variables
|
18
17
|
var selector = document.querySelector( element ) || document.querySelector( 'form' );
|
@@ -21,22 +20,22 @@ var form = function( element, settings ) {
|
|
21
20
|
if ( !selector ) return false;
|
22
21
|
|
23
22
|
// Scoped variables
|
24
|
-
var options =
|
23
|
+
var options = toolbox.merge( defaults, settings ),
|
25
24
|
rangeEls = document.querySelectorAll( 'input[type=range]' ),
|
26
25
|
tickEls = document.querySelectorAll( 'input[type=checkbox], input[type=radio]' ),
|
27
26
|
docBody = document.body;
|
28
27
|
|
29
28
|
// Prevent non-numeric characters in number fields
|
30
|
-
|
29
|
+
toolbox.event.on( docBody, 'keypress', 'input[type=number]', restrictInput )
|
31
30
|
|
32
31
|
// Run delegated `on input` listener
|
33
|
-
|
32
|
+
toolbox.event.on( docBody, 'input', '[type=range]', rangeHandler )
|
34
33
|
|
35
34
|
// Loop over any range inputs that are present
|
36
35
|
for ( var rangeIndex = 0; rangeIndex < rangeEls.length; rangeIndex++ ) {
|
37
36
|
|
38
37
|
// And run their handler function explicitly at runtime
|
39
|
-
rangeHandler( rangeEls[ rangeIndex ] )
|
38
|
+
rangeHandler( rangeEls[ rangeIndex ] )
|
40
39
|
|
41
40
|
}
|
42
41
|
|
@@ -75,14 +74,9 @@ var form = function( element, settings ) {
|
|
75
74
|
}
|
76
75
|
|
77
76
|
// Keydown handler function
|
78
|
-
function
|
77
|
+
function restrictInput( event ) {
|
79
78
|
|
80
|
-
//
|
81
|
-
if ( event.target.type !== 'number' ) {
|
82
|
-
return false;
|
83
|
-
}
|
84
|
-
|
85
|
-
// If user enters non-numeric characters
|
79
|
+
// If user typing in an input[type=number] and enters non-numeric characters
|
86
80
|
if ( event.which < 48 || event.which > 57 ) {
|
87
81
|
|
88
82
|
// Supress them
|
@@ -111,109 +105,6 @@ var form = function( element, settings ) {
|
|
111
105
|
|
112
106
|
}
|
113
107
|
|
114
|
-
// Rangetouch 0.0.9 - https://github.com/selz/rangetouch
|
115
|
-
function rangeTouch( size ) {
|
116
|
-
|
117
|
-
// Bail if not a touch device
|
118
|
-
if ( !( 'ontouchstart' in document.documentElement ) ) {
|
119
|
-
return;
|
120
|
-
}
|
121
|
-
|
122
|
-
// Scoped variables
|
123
|
-
var rangeInputs = document.querySelectorAll( '[type=range]' ),
|
124
|
-
thumbSize = size || 20;
|
125
|
-
|
126
|
-
// Set touchAction to prevent delays
|
127
|
-
for ( var i = rangeInputs.length - 1; i >= 0; i-- ) {
|
128
|
-
rangeInputs[ i ].style.touchAction = 'manipulation';
|
129
|
-
rangeInputs[ i ].style.webkitUserSelect = 'none';
|
130
|
-
}
|
131
|
-
|
132
|
-
// Listen for events
|
133
|
-
docBody.addEventListener( 'touchstart', setValue, false );
|
134
|
-
docBody.addEventListener( 'touchmove', setValue, false );
|
135
|
-
docBody.addEventListener( 'touchend', setValue, false );
|
136
|
-
|
137
|
-
// Get the number of decimal places
|
138
|
-
function getDecimalPlaces( value ) {
|
139
|
-
var match = ( '' + value ).match( /( ?:\.( \d+ ) )?( ?:[eE]( [+-]?\d+ ) )?$/ );
|
140
|
-
if ( !match ) {
|
141
|
-
return 0;
|
142
|
-
}
|
143
|
-
return Math.max( 0, ( match[ 1 ] ? match[ 1 ].length : 0 ) - ( match[ 2 ] ? +match[ 2 ] : 0 ) );
|
144
|
-
}
|
145
|
-
|
146
|
-
// Round to the nearest step
|
147
|
-
function roundToStep( number, step ) {
|
148
|
-
if ( step < 1 ) {
|
149
|
-
var places = getDecimalPlaces( parseInt( step ) );
|
150
|
-
return parseFloat( number.toFixed( places ) );
|
151
|
-
}
|
152
|
-
return ( Math.round( number / step ) * step );
|
153
|
-
}
|
154
|
-
|
155
|
-
// Get the value based on touch position
|
156
|
-
function getValue( event ) {
|
157
|
-
|
158
|
-
// Scoped variables
|
159
|
-
var input = event.target,
|
160
|
-
touch = event.changedTouches[ 0 ],
|
161
|
-
min = parseFloat( input.getAttribute( 'min' ) ) || 0,
|
162
|
-
max = parseFloat( input.getAttribute( 'max' ) ) || 100,
|
163
|
-
step = parseFloat( input.getAttribute( 'step' ) ) || 1,
|
164
|
-
delta = max - min;
|
165
|
-
|
166
|
-
// Calculate percentage
|
167
|
-
var percent,
|
168
|
-
clientRect = input.getBoundingClientRect(),
|
169
|
-
thumbWidth = ( ( ( 100 / clientRect.width ) * ( thumbSize / 2 ) ) / 100 );
|
170
|
-
|
171
|
-
// Determine left percentage
|
172
|
-
percent = ( ( 100 / clientRect.width ) * ( touch.clientX - clientRect.left ) );
|
173
|
-
|
174
|
-
// Don't allow outside bounds
|
175
|
-
if ( percent < 0 ) {
|
176
|
-
percent = 0;
|
177
|
-
} else if ( percent > 100 ) {
|
178
|
-
percent = 100;
|
179
|
-
}
|
180
|
-
|
181
|
-
// Factor in the thumb offset
|
182
|
-
if ( percent < 50 ) {
|
183
|
-
percent -= ( ( 100 - ( percent * 2 ) ) * thumbWidth );
|
184
|
-
} else if ( percent > 50 ) {
|
185
|
-
percent += ( ( ( percent - 50 ) * 2 ) * thumbWidth );
|
186
|
-
}
|
187
|
-
|
188
|
-
// Find the closest step to the mouse position
|
189
|
-
return min + roundToStep( delta * ( percent / 100 ), step );
|
190
|
-
|
191
|
-
}
|
192
|
-
|
193
|
-
// Update range value based on position
|
194
|
-
function setValue( event ) {
|
195
|
-
|
196
|
-
// Bail if not a range slider
|
197
|
-
if ( event.target.type !== 'range' ) {
|
198
|
-
return;
|
199
|
-
}
|
200
|
-
|
201
|
-
// Prevent text highlight on iOS
|
202
|
-
event.preventDefault();
|
203
|
-
|
204
|
-
// Set value
|
205
|
-
event.target.value = getValue( event );
|
206
|
-
|
207
|
-
// Trigger input event
|
208
|
-
evt.fire( event.target, ( event.type === 'touchend' ? 'change' : 'input' ) );
|
209
|
-
|
210
|
-
}
|
211
|
-
|
212
|
-
}
|
213
|
-
|
214
|
-
// Initialize RangeTouch
|
215
|
-
rangeTouch();
|
216
|
-
|
217
108
|
};
|
218
109
|
|
219
110
|
// Public API
|
@@ -6,69 +6,31 @@
|
|
6
6
|
**/
|
7
7
|
|
8
8
|
// Dependencies
|
9
|
-
var
|
9
|
+
var toolbox = require( 'compose-toolbox' )
|
10
10
|
|
11
11
|
// Public API function
|
12
|
-
var mobileMenu = function(
|
12
|
+
var mobileMenu = function( settings ) {
|
13
13
|
|
14
14
|
// Overridable defaults
|
15
15
|
var defaults = {
|
16
16
|
initWidth : '700px',
|
17
17
|
openClass : 'menu-open',
|
18
|
-
|
18
|
+
nav : '.main-nav',
|
19
|
+
button : '.mobile-menu-button'
|
19
20
|
},
|
20
21
|
|
21
22
|
// Scoped variables
|
22
|
-
options =
|
23
|
-
selector =
|
24
|
-
widthQuery = window.matchMedia( '(max-width: ' + options.initWidth + ')' ),
|
23
|
+
options = toolbox.merge( defaults, settings ),
|
24
|
+
selector = options.button + ', ' + options.openClass + ' ' + options.nav + ' a',
|
25
25
|
docBody = document.body;
|
26
26
|
|
27
27
|
// Attach listeners
|
28
|
-
|
28
|
+
toolbox.event.on( document, 'click', selector, function() {
|
29
|
+
// Toggle body class
|
30
|
+
docBody.classList.toggle( options.openClass )
|
31
|
+
})
|
29
32
|
|
30
|
-
|
31
|
-
queryHandler( widthQuery );
|
32
|
-
|
33
|
-
// Attach listener function to listen in on state changes
|
34
|
-
widthQuery.addListener( queryHandler );
|
35
|
-
|
36
|
-
}
|
37
|
-
|
38
|
-
// Click handler function
|
39
|
-
function clickHandler( event ) {
|
40
|
-
|
41
|
-
// Combine element selector with anchor links
|
42
|
-
var toggleSelector = options.menuButton + ', .' + options.openClass + ' ' + element + ' a[href^="#"]';
|
43
|
-
|
44
|
-
// Only run on menu button
|
45
|
-
if ( matches( event.target, toggleSelector ) ) {
|
46
|
-
|
47
|
-
// Toggle body class
|
48
|
-
docBody.classList.toggle( options.openClass );
|
49
|
-
|
50
|
-
}
|
51
|
-
|
52
|
-
}
|
53
|
-
|
54
|
-
// Media query handler function
|
55
|
-
function queryHandler( condition ) {
|
56
|
-
|
57
|
-
// If media query matches
|
58
|
-
if ( condition.matches ) {
|
59
|
-
|
60
|
-
// Click function listener
|
61
|
-
selector.addEventListener( 'click', clickHandler, false );
|
62
|
-
|
63
|
-
} else {
|
64
|
-
|
65
|
-
// Remove click listener
|
66
|
-
selector.removeEventListener( 'click', clickHandler, false );
|
67
|
-
|
68
|
-
}
|
69
|
-
}
|
70
|
-
|
71
|
-
};
|
33
|
+
}
|
72
34
|
|
73
35
|
// Public API
|
74
|
-
module.exports = mobileMenu
|
36
|
+
module.exports = mobileMenu
|
@@ -0,0 +1,30 @@
|
|
1
|
+
var toolbox = require( 'compose-toolbox' )
|
2
|
+
var Event = toolbox.event
|
3
|
+
var textSelectors = 'textarea, input[type=url], input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password]'
|
4
|
+
|
5
|
+
Event.bubbleFormEvents()
|
6
|
+
|
7
|
+
function textInputs() {
|
8
|
+
return document.querySelectorAll( textSelectors )
|
9
|
+
}
|
10
|
+
|
11
|
+
function syncValue( input ) {
|
12
|
+
|
13
|
+
// Allow calling from event handler
|
14
|
+
if ( input.target ) { input = input.target }
|
15
|
+
|
16
|
+
// If element only contains whitespace, strip value
|
17
|
+
if ( !input.value.replace( /\s/g, '' ).length ) { input.value = ''; }
|
18
|
+
|
19
|
+
input.setAttribute( 'value', input.value )
|
20
|
+
|
21
|
+
}
|
22
|
+
|
23
|
+
Event.change( function() {
|
24
|
+
|
25
|
+
// Ensure that all inputs have a value
|
26
|
+
toolbox.each( textInputs(), syncValue )
|
27
|
+
|
28
|
+
})
|
29
|
+
|
30
|
+
Event.on( document, 'blur', 'input', syncValue )
|
@@ -1,95 +1,76 @@
|
|
1
|
-
// Shim modules
|
2
|
-
require( './shim/classlist' );
|
3
|
-
require( './shim/object.assign' );
|
4
|
-
|
5
1
|
// Utility modules
|
6
|
-
var loadFont = require( './utility/load_font' )
|
7
|
-
var
|
8
|
-
var unhover = require( './utility/unhover' );
|
9
|
-
var throttle = require( './utility/throttle' );
|
10
|
-
var loadScript = require( './utility/load_script' );
|
11
|
-
var fromTop = require( './utility/from_top' );
|
12
|
-
var scrollTo = require( './utility/scroll_to' );
|
13
|
-
var matches = require( './utility/matches' );
|
14
|
-
var getClosest = require( './utility/get_closest' );
|
15
|
-
var getNext = require( './utility/get_next' );
|
16
|
-
var wordCount = require( './utility/word_count' );
|
17
|
-
var compileData = require( './utility/compile_data' );
|
18
|
-
var timeout = require( './utility/timeout' );
|
2
|
+
var loadFont = require( './utility/load_font' )
|
3
|
+
var loadScript = require( './utility/load_script' )
|
19
4
|
|
20
5
|
// Base modules
|
21
|
-
var mobileMenu = require( './base/mobilemenu' )
|
22
|
-
var form = require( './base/form' )
|
23
|
-
var
|
6
|
+
var mobileMenu = require( './base/mobilemenu' )
|
7
|
+
var form = require( './base/form' )
|
8
|
+
var formUp = require( 'compose-form-up' )
|
9
|
+
form.validate = formUp.validate
|
10
|
+
form.next = formUp.next
|
11
|
+
require( './base/sync-input-value' )
|
24
12
|
|
25
13
|
// Enhancement modules
|
26
|
-
var
|
27
|
-
var
|
28
|
-
var
|
29
|
-
var
|
30
|
-
var esvg = require( './_svg' )
|
14
|
+
var waypoints = require( './enhancement/waypoints' )
|
15
|
+
var notice = require( './enhancement/notice' )
|
16
|
+
var sticky = require( './enhancement/sticky' )
|
17
|
+
var lightbox = require( './enhancement/lightbox' )
|
18
|
+
var esvg = require( './_svg' )
|
31
19
|
// var swap = require( './enhancement/swap' );
|
32
20
|
|
33
21
|
// Vendor modules
|
34
|
-
var
|
35
|
-
var
|
36
|
-
require( '
|
37
|
-
require( '
|
38
|
-
require( '
|
39
|
-
require( '
|
40
|
-
|
41
|
-
require( 'codemirror/mode/
|
42
|
-
require( 'codemirror/mode/
|
43
|
-
require( 'codemirror/mode/
|
44
|
-
require( 'codemirror/mode/
|
45
|
-
require( 'codemirror/mode/
|
46
|
-
require( 'codemirror/mode/
|
47
|
-
require( 'codemirror/mode/
|
48
|
-
require( 'codemirror/
|
49
|
-
require( 'codemirror/
|
22
|
+
var toolbox = require( 'compose-toolbox' )
|
23
|
+
var event = toolbox.event
|
24
|
+
var ajax = require( 'superagent' )
|
25
|
+
var rangeTouch = require( 'rangetouch' )
|
26
|
+
var highlighter = require( 'compose-code-highlighter' )
|
27
|
+
var loader = require( 'compose-loader' )
|
28
|
+
|
29
|
+
require( 'codemirror/mode/htmlmixed/htmlmixed' )
|
30
|
+
require( 'codemirror/mode/slim/slim' )
|
31
|
+
require( 'codemirror/mode/javascript/javascript' )
|
32
|
+
require( 'codemirror/mode/css/css' )
|
33
|
+
require( 'codemirror/mode/sql/sql' )
|
34
|
+
require( 'codemirror/mode/php/php' )
|
35
|
+
require( 'codemirror/mode/ruby/ruby' )
|
36
|
+
require( 'codemirror/mode/shell/shell' )
|
37
|
+
require( 'codemirror/mode/go/go' )
|
38
|
+
require( 'codemirror/mode/python/python' )
|
39
|
+
require( 'codemirror/mode/yaml/yaml' )
|
40
|
+
require( 'codemirror/mode/clike/clike' )
|
41
|
+
require( 'codemirror/addon/runmode/runmode' )
|
42
|
+
require( 'codemirror/addon/edit/matchbrackets' )
|
43
|
+
|
44
|
+
// Initialize component features
|
45
|
+
rangeTouch.set("thumbWidth", 20); // Annoying hack to make input ranges work smoothly on touch devices
|
46
|
+
|
47
|
+
event.scroll.disablePointer() // disable pointer events on scroll for performance (to avoid extra repaints)
|
48
|
+
event.resize.disableAnimation() // disable animation on resize for performance (to avoid extra repaints)
|
49
|
+
|
50
|
+
// Trigger these events each time the page loads
|
51
|
+
event.change( function() {
|
52
|
+
|
53
|
+
// Form module
|
54
|
+
form()
|
55
|
+
|
56
|
+
// Syntax highlighting
|
57
|
+
highlighter.highlight()
|
58
|
+
});
|
50
59
|
|
51
60
|
// Public API object
|
52
|
-
|
61
|
+
var ratchet = toolbox.merge( {
|
53
62
|
loadFont : loadFont,
|
54
|
-
fullStop : fullStop,
|
55
|
-
unhover : unhover,
|
56
|
-
throttle : throttle,
|
57
63
|
loadScript : loadScript,
|
58
|
-
|
59
|
-
|
60
|
-
matches : matches,
|
61
|
-
getClosest : getClosest,
|
62
|
-
getNext : getNext,
|
63
|
-
wordCount : wordCount,
|
64
|
-
compileData : compileData,
|
65
|
-
timeout : timeout,
|
64
|
+
ajax : ajax,
|
65
|
+
loader : loader,
|
66
66
|
mobileMenu : mobileMenu,
|
67
67
|
form : form,
|
68
|
-
validation :
|
69
|
-
loader : loader,
|
68
|
+
validation : formUp.validate,
|
70
69
|
waypoints : waypoints,
|
71
70
|
notice : notice,
|
72
71
|
sticky : sticky,
|
73
|
-
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
// Default events instantiation
|
78
|
-
event.change( function() {
|
79
|
-
|
80
|
-
// Unhover module
|
81
|
-
unhover();
|
82
|
-
|
83
|
-
// FullStop module
|
84
|
-
fullStop();
|
85
|
-
|
86
|
-
// Form module
|
87
|
-
form();
|
88
|
-
|
89
|
-
// Validation module
|
90
|
-
validation();
|
91
|
-
|
92
|
-
// Syntax highlighting
|
93
|
-
highlighter.highlight();
|
72
|
+
lightbox : lightbox,
|
73
|
+
esvg : esvg
|
74
|
+
}, toolbox )
|
94
75
|
|
95
|
-
|
76
|
+
window.ratchet = module.exports = ratchet
|
@@ -5,9 +5,6 @@
|
|
5
5
|
* @license MIT
|
6
6
|
**/
|
7
7
|
|
8
|
-
// Dependencies
|
9
|
-
var getClosest = require('../utility/get_closest')
|
10
|
-
|
11
8
|
;( function( root, factory ) {
|
12
9
|
if ( typeof define === 'function' && define.amd ) {
|
13
10
|
define( factory );
|
@@ -29,7 +26,7 @@ var getClosest = require('../utility/get_closest')
|
|
29
26
|
defaults = {
|
30
27
|
expandText : 'Show more ∨',
|
31
28
|
collapseText : 'Show less ∧',
|
32
|
-
triggerText : '
|
29
|
+
triggerText : '{{ more }}'
|
33
30
|
};
|
34
31
|
|
35
32
|
// Only run if selector exists
|
@@ -77,7 +74,7 @@ var getClosest = require('../utility/get_closest')
|
|
77
74
|
event.preventDefault();
|
78
75
|
|
79
76
|
// Scoped variables
|
80
|
-
var expandable = getClosest( event.target, element ),
|
77
|
+
var expandable = compose.getClosest( event.target, element ),
|
81
78
|
stateObject = state[ expandable.dataset.idx ];
|
82
79
|
|
83
80
|
// Toggle between excerpt and full text
|
@@ -93,4 +90,4 @@ var getClosest = require('../utility/get_closest')
|
|
93
90
|
// Public API
|
94
91
|
return exports;
|
95
92
|
|
96
|
-
});
|
93
|
+
});
|
@@ -1,13 +1,9 @@
|
|
1
1
|
/**
|
2
|
-
* Swap 0.0.2
|
3
|
-
* Compose swappable element module
|
2
|
+
* Swap.js 0.0.2
|
4
3
|
* @author Kyle Foster (@hkfoster)
|
5
4
|
* @license MIT
|
6
5
|
**/
|
7
6
|
|
8
|
-
// Dependencies
|
9
|
-
var ScrollTo = require('../utility/scroll_to')
|
10
|
-
|
11
7
|
// Transport
|
12
8
|
;( function( root, factory ) {
|
13
9
|
if ( typeof define === 'function' && define.amd ) {
|
@@ -71,7 +67,7 @@ var ScrollTo = require('../utility/scroll_to')
|
|
71
67
|
} else {
|
72
68
|
|
73
69
|
// Stop default anchor tag jump
|
74
|
-
|
70
|
+
window.scrollTo(0, 0);
|
75
71
|
|
76
72
|
// Assign appropriate element(s) variables
|
77
73
|
var loadedTarget = document.querySelector( '#' + getHash() ),
|
@@ -117,4 +113,4 @@ var ScrollTo = require('../utility/scroll_to')
|
|
117
113
|
|
118
114
|
}
|
119
115
|
|
120
|
-
});
|
116
|
+
});
|