framework7rails 0.9.7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -0
  3. data/Framework7-0.9.6/.gitignore +5 -0
  4. data/Framework7-0.9.6/.jshintrc +33 -0
  5. data/Framework7-0.9.6/.travis.yml +5 -0
  6. data/Framework7-0.9.6/CHANGELOG.md +342 -0
  7. data/Framework7-0.9.6/Gruntfile.js +560 -0
  8. data/Framework7-0.9.6/LICENSE +20 -0
  9. data/Framework7-0.9.6/README.md +113 -0
  10. data/Framework7-0.9.6/apps/todo7/css/todo7.css +208 -0
  11. data/Framework7-0.9.6/apps/todo7/img/Icon-152.png +0 -0
  12. data/Framework7-0.9.6/apps/todo7/img/bg.jpg +0 -0
  13. data/Framework7-0.9.6/apps/todo7/img/icon-114.png +0 -0
  14. data/Framework7-0.9.6/apps/todo7/img/icon-120.png +0 -0
  15. data/Framework7-0.9.6/apps/todo7/img/icon-144.png +0 -0
  16. data/Framework7-0.9.6/apps/todo7/img/icon-57.png +0 -0
  17. data/Framework7-0.9.6/apps/todo7/img/icon-72.png +0 -0
  18. data/Framework7-0.9.6/apps/todo7/img/icon-76.png +0 -0
  19. data/Framework7-0.9.6/apps/todo7/index.html +112 -0
  20. data/Framework7-0.9.6/apps/todo7/jade/index.jade +99 -0
  21. data/Framework7-0.9.6/apps/todo7/js/todo7.js +102 -0
  22. data/Framework7-0.9.6/apps/todo7/less/todo7.less +221 -0
  23. data/Framework7-0.9.6/apps/todo7/manifest.php +27 -0
  24. data/Framework7-0.9.6/apps/weather7/css/weather7.css +291 -0
  25. data/Framework7-0.9.6/apps/weather7/img/bg.jpg +0 -0
  26. data/Framework7-0.9.6/apps/weather7/img/icon-114.png +0 -0
  27. data/Framework7-0.9.6/apps/weather7/img/icon-120.png +0 -0
  28. data/Framework7-0.9.6/apps/weather7/img/icon-144.png +0 -0
  29. data/Framework7-0.9.6/apps/weather7/img/icon-152.png +0 -0
  30. data/Framework7-0.9.6/apps/weather7/img/icon-57.png +0 -0
  31. data/Framework7-0.9.6/apps/weather7/img/icon-72.png +0 -0
  32. data/Framework7-0.9.6/apps/weather7/img/icon-76.png +0 -0
  33. data/Framework7-0.9.6/apps/weather7/img/logo.png +0 -0
  34. data/Framework7-0.9.6/apps/weather7/img/yahoo-logo.png +0 -0
  35. data/Framework7-0.9.6/apps/weather7/index.html +127 -0
  36. data/Framework7-0.9.6/apps/weather7/jade/index.jade +113 -0
  37. data/Framework7-0.9.6/apps/weather7/js/weather7.js +213 -0
  38. data/Framework7-0.9.6/apps/weather7/less/weather7.less +294 -0
  39. data/Framework7-0.9.6/apps/weather7/manifest.php +29 -0
  40. data/Framework7-0.9.6/bower.json +30 -0
  41. data/Framework7-0.9.6/dist/about.html +28 -0
  42. data/Framework7-0.9.6/dist/css/framework7.css +4922 -0
  43. data/Framework7-0.9.6/dist/css/framework7.min.css +15 -0
  44. data/Framework7-0.9.6/dist/css/framework7.rtl.css +427 -0
  45. data/Framework7-0.9.6/dist/css/framework7.rtl.min.css +1 -0
  46. data/Framework7-0.9.6/dist/css/framework7.themes.css +279 -0
  47. data/Framework7-0.9.6/dist/css/framework7.themes.min.css +1 -0
  48. data/Framework7-0.9.6/dist/css/my-app.css +0 -0
  49. data/Framework7-0.9.6/dist/form.html +229 -0
  50. data/Framework7-0.9.6/dist/img/i-f7.png +0 -0
  51. data/Framework7-0.9.6/dist/img/i-form-calendar.png +0 -0
  52. data/Framework7-0.9.6/dist/img/i-form-comment.png +0 -0
  53. data/Framework7-0.9.6/dist/img/i-form-email.png +0 -0
  54. data/Framework7-0.9.6/dist/img/i-form-gender.png +0 -0
  55. data/Framework7-0.9.6/dist/img/i-form-name.png +0 -0
  56. data/Framework7-0.9.6/dist/img/i-form-password.png +0 -0
  57. data/Framework7-0.9.6/dist/img/i-form-settings.png +0 -0
  58. data/Framework7-0.9.6/dist/img/i-form-tel.png +0 -0
  59. data/Framework7-0.9.6/dist/img/i-form-toggle.png +0 -0
  60. data/Framework7-0.9.6/dist/img/i-form-url.png +0 -0
  61. data/Framework7-0.9.6/dist/index.html +102 -0
  62. data/Framework7-0.9.6/dist/js/framework7.js +7479 -0
  63. data/Framework7-0.9.6/dist/js/framework7.min.js +18 -0
  64. data/Framework7-0.9.6/dist/js/my-app.js +48 -0
  65. data/Framework7-0.9.6/dist/services.html +28 -0
  66. data/Framework7-0.9.6/examples/split-view/about.html +19 -0
  67. data/Framework7-0.9.6/examples/split-view/css/my-app.css +23 -0
  68. data/Framework7-0.9.6/examples/split-view/index.html +135 -0
  69. data/Framework7-0.9.6/examples/split-view/jade/about.jade +15 -0
  70. data/Framework7-0.9.6/examples/split-view/jade/index.jade +107 -0
  71. data/Framework7-0.9.6/examples/split-view/jade/left-page-1.jade +15 -0
  72. data/Framework7-0.9.6/examples/split-view/jade/left-page-2.jade +15 -0
  73. data/Framework7-0.9.6/examples/split-view/jade/services.jade +15 -0
  74. data/Framework7-0.9.6/examples/split-view/js/my-app.js +15 -0
  75. data/Framework7-0.9.6/examples/split-view/left-page-1.html +19 -0
  76. data/Framework7-0.9.6/examples/split-view/left-page-2.html +19 -0
  77. data/Framework7-0.9.6/examples/split-view/less/my-app.less +23 -0
  78. data/Framework7-0.9.6/examples/split-view/services.html +19 -0
  79. data/Framework7-0.9.6/examples/split-view-panel/about.html +20 -0
  80. data/Framework7-0.9.6/examples/split-view-panel/css/my-app.css +56 -0
  81. data/Framework7-0.9.6/examples/split-view-panel/index.html +135 -0
  82. data/Framework7-0.9.6/examples/split-view-panel/jade/about.jade +18 -0
  83. data/Framework7-0.9.6/examples/split-view-panel/jade/index.jade +107 -0
  84. data/Framework7-0.9.6/examples/split-view-panel/jade/left-page-1.jade +15 -0
  85. data/Framework7-0.9.6/examples/split-view-panel/jade/left-page-2.jade +15 -0
  86. data/Framework7-0.9.6/examples/split-view-panel/jade/services.jade +18 -0
  87. data/Framework7-0.9.6/examples/split-view-panel/js/my-app.js +15 -0
  88. data/Framework7-0.9.6/examples/split-view-panel/left-page-1.html +19 -0
  89. data/Framework7-0.9.6/examples/split-view-panel/left-page-2.html +19 -0
  90. data/Framework7-0.9.6/examples/split-view-panel/less/my-app.less +62 -0
  91. data/Framework7-0.9.6/examples/split-view-panel/services.html +20 -0
  92. data/Framework7-0.9.6/examples/tab-bar/about.html +19 -0
  93. data/Framework7-0.9.6/examples/tab-bar/css/my-app.css +34 -0
  94. data/Framework7-0.9.6/examples/tab-bar/index.html +238 -0
  95. data/Framework7-0.9.6/examples/tab-bar/jade/about.jade +15 -0
  96. data/Framework7-0.9.6/examples/tab-bar/jade/index.jade +189 -0
  97. data/Framework7-0.9.6/examples/tab-bar/jade/services.jade +15 -0
  98. data/Framework7-0.9.6/examples/tab-bar/js/my-app.js +15 -0
  99. data/Framework7-0.9.6/examples/tab-bar/less/my-app.less +35 -0
  100. data/Framework7-0.9.6/examples/tab-bar/services.html +19 -0
  101. data/Framework7-0.9.6/kitchen-sink/about.html +22 -0
  102. data/Framework7-0.9.6/kitchen-sink/accordion.html +171 -0
  103. data/Framework7-0.9.6/kitchen-sink/color-themes.html +42 -0
  104. data/Framework7-0.9.6/kitchen-sink/contacts.html +190 -0
  105. data/Framework7-0.9.6/kitchen-sink/core-features.html +70 -0
  106. data/Framework7-0.9.6/kitchen-sink/css/kitchen-sink.css +233 -0
  107. data/Framework7-0.9.6/kitchen-sink/deep-2.html +22 -0
  108. data/Framework7-0.9.6/kitchen-sink/deep-navbar-2.html +19 -0
  109. data/Framework7-0.9.6/kitchen-sink/deep-navbar-3.html +19 -0
  110. data/Framework7-0.9.6/kitchen-sink/deep-navbar.html +18 -0
  111. data/Framework7-0.9.6/kitchen-sink/forms-buttons.html +64 -0
  112. data/Framework7-0.9.6/kitchen-sink/forms-checkboxes.html +200 -0
  113. data/Framework7-0.9.6/kitchen-sink/forms-elements.html +359 -0
  114. data/Framework7-0.9.6/kitchen-sink/forms-selects.html +72 -0
  115. data/Framework7-0.9.6/kitchen-sink/forms-storage.html +181 -0
  116. data/Framework7-0.9.6/kitchen-sink/forms.html +56 -0
  117. data/Framework7-0.9.6/kitchen-sink/grid.html +140 -0
  118. data/Framework7-0.9.6/kitchen-sink/hide-navbar-toolbar.html +42 -0
  119. data/Framework7-0.9.6/kitchen-sink/img/beach.jpg +0 -0
  120. data/Framework7-0.9.6/kitchen-sink/img/lock.jpg +0 -0
  121. data/Framework7-0.9.6/kitchen-sink/img/monkey.jpg +0 -0
  122. data/Framework7-0.9.6/kitchen-sink/img/mountains.jpg +0 -0
  123. data/Framework7-0.9.6/kitchen-sink/index.html +466 -0
  124. data/Framework7-0.9.6/kitchen-sink/infinite-scroll-load.php +19 -0
  125. data/Framework7-0.9.6/kitchen-sink/infinite-scroll.html +119 -0
  126. data/Framework7-0.9.6/kitchen-sink/jade/about.jade +19 -0
  127. data/Framework7-0.9.6/kitchen-sink/jade/accordion.jade +133 -0
  128. data/Framework7-0.9.6/kitchen-sink/jade/color-themes.jade +37 -0
  129. data/Framework7-0.9.6/kitchen-sink/jade/contacts.jade +115 -0
  130. data/Framework7-0.9.6/kitchen-sink/jade/core-features.jade +74 -0
  131. data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar-2.jade +15 -0
  132. data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar-3.jade +15 -0
  133. data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar.jade +15 -0
  134. data/Framework7-0.9.6/kitchen-sink/jade/forms-buttons.jade +71 -0
  135. data/Framework7-0.9.6/kitchen-sink/jade/forms-checkboxes.jade +152 -0
  136. data/Framework7-0.9.6/kitchen-sink/jade/forms-elements.jade +239 -0
  137. data/Framework7-0.9.6/kitchen-sink/jade/forms-selects.jade +60 -0
  138. data/Framework7-0.9.6/kitchen-sink/jade/forms-storage.jade +134 -0
  139. data/Framework7-0.9.6/kitchen-sink/jade/forms.jade +52 -0
  140. data/Framework7-0.9.6/kitchen-sink/jade/grid.jade +110 -0
  141. data/Framework7-0.9.6/kitchen-sink/jade/hide-navbar-toolbar.jade +38 -0
  142. data/Framework7-0.9.6/kitchen-sink/jade/index.jade +427 -0
  143. data/Framework7-0.9.6/kitchen-sink/jade/infinite-scroll.jade +20 -0
  144. data/Framework7-0.9.6/kitchen-sink/jade/list-view.jade +266 -0
  145. data/Framework7-0.9.6/kitchen-sink/jade/login-screen-embedded.jade +22 -0
  146. data/Framework7-0.9.6/kitchen-sink/jade/login-screen.jade +20 -0
  147. data/Framework7-0.9.6/kitchen-sink/jade/media-lists.jade +170 -0
  148. data/Framework7-0.9.6/kitchen-sink/jade/messages.jade +71 -0
  149. data/Framework7-0.9.6/kitchen-sink/jade/modals.jade +36 -0
  150. data/Framework7-0.9.6/kitchen-sink/jade/navbars-toolbars.jade +43 -0
  151. data/Framework7-0.9.6/kitchen-sink/jade/no-navbar-toolbar.jade +7 -0
  152. data/Framework7-0.9.6/kitchen-sink/jade/no-navbar.jade +7 -0
  153. data/Framework7-0.9.6/kitchen-sink/jade/no-toolbar.jade +17 -0
  154. data/Framework7-0.9.6/kitchen-sink/jade/notifications.jade +23 -0
  155. data/Framework7-0.9.6/kitchen-sink/jade/panels.jade +21 -0
  156. data/Framework7-0.9.6/kitchen-sink/jade/photo-browser.jade +36 -0
  157. data/Framework7-0.9.6/kitchen-sink/jade/popover.jade +21 -0
  158. data/Framework7-0.9.6/kitchen-sink/jade/preloader.jade +31 -0
  159. data/Framework7-0.9.6/kitchen-sink/jade/pull-to-refresh.jade +44 -0
  160. data/Framework7-0.9.6/kitchen-sink/jade/searchbar.jade +146 -0
  161. data/Framework7-0.9.6/kitchen-sink/jade/slider-custom.jade +23 -0
  162. data/Framework7-0.9.6/kitchen-sink/jade/slider-horizontal.jade +18 -0
  163. data/Framework7-0.9.6/kitchen-sink/jade/slider-multiple.jade +48 -0
  164. data/Framework7-0.9.6/kitchen-sink/jade/slider-nested.jade +26 -0
  165. data/Framework7-0.9.6/kitchen-sink/jade/slider-space-between.jade +18 -0
  166. data/Framework7-0.9.6/kitchen-sink/jade/slider-vertical.jade +18 -0
  167. data/Framework7-0.9.6/kitchen-sink/jade/slider.jade +57 -0
  168. data/Framework7-0.9.6/kitchen-sink/jade/sortable-list.jade +107 -0
  169. data/Framework7-0.9.6/kitchen-sink/jade/swipe-delete.jade +195 -0
  170. data/Framework7-0.9.6/kitchen-sink/jade/tabbar-labels.jade +54 -0
  171. data/Framework7-0.9.6/kitchen-sink/jade/tabbar.jade +50 -0
  172. data/Framework7-0.9.6/kitchen-sink/jade/tabs.jade +34 -0
  173. data/Framework7-0.9.6/kitchen-sink/jade/transitions.jade +27 -0
  174. data/Framework7-0.9.6/kitchen-sink/js/kitchen-sink.js +442 -0
  175. data/Framework7-0.9.6/kitchen-sink/less/kitchen-sink.less +245 -0
  176. data/Framework7-0.9.6/kitchen-sink/list-view.html +318 -0
  177. data/Framework7-0.9.6/kitchen-sink/login-screen-embedded.html +36 -0
  178. data/Framework7-0.9.6/kitchen-sink/login-screen.html +21 -0
  179. data/Framework7-0.9.6/kitchen-sink/media-lists.html +173 -0
  180. data/Framework7-0.9.6/kitchen-sink/messages.html +84 -0
  181. data/Framework7-0.9.6/kitchen-sink/modals.html +33 -0
  182. data/Framework7-0.9.6/kitchen-sink/navbars-toolbars.html +46 -0
  183. data/Framework7-0.9.6/kitchen-sink/no-navbar-toolbar.html +11 -0
  184. data/Framework7-0.9.6/kitchen-sink/no-navbar.html +11 -0
  185. data/Framework7-0.9.6/kitchen-sink/no-toolbar.html +18 -0
  186. data/Framework7-0.9.6/kitchen-sink/notifications.html +21 -0
  187. data/Framework7-0.9.6/kitchen-sink/panel-right2.html +16 -0
  188. data/Framework7-0.9.6/kitchen-sink/panel-right3.html +16 -0
  189. data/Framework7-0.9.6/kitchen-sink/panels.html +23 -0
  190. data/Framework7-0.9.6/kitchen-sink/photo-browser.html +36 -0
  191. data/Framework7-0.9.6/kitchen-sink/popover.html +21 -0
  192. data/Framework7-0.9.6/kitchen-sink/preloader.html +28 -0
  193. data/Framework7-0.9.6/kitchen-sink/pull-to-refresh.html +52 -0
  194. data/Framework7-0.9.6/kitchen-sink/searchbar.html +233 -0
  195. data/Framework7-0.9.6/kitchen-sink/slider-custom.html +28 -0
  196. data/Framework7-0.9.6/kitchen-sink/slider-horizontal.html +29 -0
  197. data/Framework7-0.9.6/kitchen-sink/slider-multiple.html +89 -0
  198. data/Framework7-0.9.6/kitchen-sink/slider-nested.html +32 -0
  199. data/Framework7-0.9.6/kitchen-sink/slider-space-between.html +29 -0
  200. data/Framework7-0.9.6/kitchen-sink/slider-vertical.html +29 -0
  201. data/Framework7-0.9.6/kitchen-sink/slider.html +54 -0
  202. data/Framework7-0.9.6/kitchen-sink/sortable-list.html +137 -0
  203. data/Framework7-0.9.6/kitchen-sink/swipe-delete.html +216 -0
  204. data/Framework7-0.9.6/kitchen-sink/tabbar-labels.html +51 -0
  205. data/Framework7-0.9.6/kitchen-sink/tabbar.html +0 -0
  206. data/Gemfile +4 -0
  207. data/LICENSE.txt +22 -0
  208. data/README.md +109 -0
  209. data/Rakefile +2 -0
  210. data/framework7rails.gemspec +23 -0
  211. data/install_local.sh +2 -0
  212. data/lib/framework7rails/version.rb +4 -0
  213. data/lib/framework7rails.rb +8 -0
  214. data/update_from_vendor.rb +40 -0
  215. data/vendor/assets/images/i-f7.png +0 -0
  216. data/vendor/assets/images/i-form-calendar.png +0 -0
  217. data/vendor/assets/images/i-form-comment.png +0 -0
  218. data/vendor/assets/images/i-form-email.png +0 -0
  219. data/vendor/assets/images/i-form-gender.png +0 -0
  220. data/vendor/assets/images/i-form-name.png +0 -0
  221. data/vendor/assets/images/i-form-password.png +0 -0
  222. data/vendor/assets/images/i-form-settings.png +0 -0
  223. data/vendor/assets/images/i-form-tel.png +0 -0
  224. data/vendor/assets/images/i-form-toggle.png +0 -0
  225. data/vendor/assets/images/i-form-url.png +0 -0
  226. data/vendor/assets/javascripts/framework7.js +8288 -0
  227. data/vendor/assets/javascripts/framework7.js.map +1 -0
  228. data/vendor/assets/stylesheets/framework7.css +5078 -0
  229. data/vendor/assets/stylesheets/framework7.themes.css +279 -0
  230. metadata +231 -3
@@ -0,0 +1,560 @@
1
+ 'use strict';
2
+ /*global require:true, module:false*/
3
+ module.exports = function (grunt) {
4
+ // show elapsed time at the end
5
+ require('time-grunt')(grunt);
6
+ // load all grunt tasks
7
+ require('load-grunt-tasks')(grunt);
8
+
9
+ var framework7 = {
10
+ filename: 'framework7'
11
+ };
12
+
13
+
14
+ var customModules = grunt.file.readJSON('modules.json');
15
+ var customBanner = '/*\n' +
16
+ ' * <%= pkg.name %> <%= pkg.version %> - Custom Build\n' +
17
+ ' *\n' +
18
+ ' * Included modules: <%= modulesList %>\n' +
19
+ ' *\n' +
20
+ ' * Copyright <%= grunt.template.today("yyyy") %>, <%= pkg.author %>\n' +
21
+ ' * The iDangero.us\n' +
22
+ ' * http://www.idangero.us/\n' +
23
+ ' *\n' +
24
+ ' * Created on: <%= grunt.template.today("mmmm d, yyyy, HH:MM") %>\n' +
25
+ '*/\n';
26
+
27
+ // List of js files to concatenate
28
+ var jsFilesList = [
29
+ 'src/js/wrap-start.js',
30
+ 'src/js/f7-intro.js',
31
+ 'src/js/global-events.js',
32
+ 'src/js/views.js',
33
+ 'src/js/navbars.js',
34
+ 'src/js/searchbar.js',
35
+ 'src/js/messagebar.js',
36
+ 'src/js/xhr.js',
37
+ 'src/js/pages.js',
38
+ 'src/js/modals.js',
39
+ 'src/js/panels.js',
40
+ 'src/js/messages.js',
41
+ 'src/js/swipeout.js',
42
+ 'src/js/sortable.js',
43
+ 'src/js/smart-select.js',
44
+ 'src/js/pull-to-refresh.js',
45
+ 'src/js/infinite-scroll.js',
46
+ 'src/js/tabs.js',
47
+ 'src/js/accordion.js',
48
+ 'src/js/fast-clicks.js',
49
+ 'src/js/clicks.js',
50
+ 'src/js/resize.js',
51
+ 'src/js/forms-handler.js',
52
+ 'src/js/push-state.js',
53
+ 'src/js/slider.js',
54
+ 'src/js/photo-browser.js',
55
+ 'src/js/notifications.js',
56
+ 'src/js/plugins.js',
57
+ 'src/js/init.js',
58
+ 'src/js/f7-outro.js',
59
+ 'src/js/dom7-intro.js',
60
+ 'src/js/dom7-methods.js',
61
+ 'src/js/dom7-ajax.js',
62
+ 'src/js/dom7-utils.js',
63
+ 'src/js/dom7-outro.js',
64
+ 'src/js/proto-support.js',
65
+ 'src/js/proto-device.js',
66
+ 'src/js/proto-plugins.js',
67
+ 'src/js/wrap-end.js',
68
+ 'src/js/template7.js'
69
+ ];
70
+
71
+ // Project configuration.
72
+ grunt.initConfig({
73
+ framework7: framework7,
74
+ // Metadata.
75
+ pkg: grunt.file.readJSON('bower.json'),
76
+ banner: '/*\n' +
77
+ ' * <%= pkg.name %> <%= pkg.version %>\n' +
78
+ ' * <%= pkg.description %>\n' +
79
+ ' *\n' +
80
+ ' * <%= pkg.homepage %>\n' +
81
+ ' *\n' +
82
+ ' * Copyright <%= grunt.template.today("yyyy") %>, <%= pkg.author %>\n' +
83
+ ' * The iDangero.us\n' +
84
+ ' * http://www.idangero.us/\n' +
85
+ ' *\n' +
86
+ ' * Licensed under <%= pkg.license.join(" & ") %>\n' +
87
+ ' *\n' +
88
+ ' * Released on: <%= grunt.template.today("mmmm d, yyyy") %>\n' +
89
+ '*/\n',
90
+
91
+ // Task configuration.
92
+ connect: {
93
+ server: {
94
+ options: {
95
+ port: 3000,
96
+ base: ''
97
+ }
98
+ }
99
+ },
100
+ open: {
101
+ kitchen: {
102
+ path: 'http://localhost:3000/kitchen-sink'
103
+ }
104
+ },
105
+ less: {
106
+ build: {
107
+ options: {
108
+ paths: ['less'],
109
+ cleancss: false
110
+ },
111
+ files: {
112
+ 'build/css/<%= framework7.filename %>.css' : ['src/less/<%= framework7.filename %>.less'],
113
+ 'build/css/<%= framework7.filename %>.rtl.css' : ['src/less/<%= framework7.filename %>.rtl.less'],
114
+ 'build/css/<%= framework7.filename %>.themes.css' : ['src/less/<%= framework7.filename %>.themes.less']
115
+ }
116
+ },
117
+ dist: {
118
+ options: {
119
+ paths: ['less'],
120
+ cleancss: true
121
+ },
122
+ files: {
123
+ 'dist/css/<%= framework7.filename %>.min.css' : ['src/less/<%= framework7.filename %>.less'],
124
+ 'dist/css/<%= framework7.filename %>.rtl.min.css' : ['src/less/<%= framework7.filename %>.rtl.less'],
125
+ 'dist/css/<%= framework7.filename %>.themes.min.css' : ['src/less/<%= framework7.filename %>.themes.less']
126
+ }
127
+ },
128
+ kitchen: {
129
+ options: {
130
+ paths: ['kitchen-sink/less/'],
131
+ cleancss: false
132
+ },
133
+ files: {
134
+ 'kitchen-sink/css/kitchen-sink.css' : 'kitchen-sink/less/kitchen-sink.less'
135
+ }
136
+ },
137
+ examples: {
138
+ options: {
139
+ cleancss: false
140
+ },
141
+ files: [
142
+ {
143
+ expand: true,
144
+ cwd: 'examples/tab-bar/less/',
145
+ src: ['*.less'],
146
+ dest: 'examples/tab-bar/css/',
147
+ ext: '.css'
148
+ },
149
+ {
150
+ expand: true,
151
+ cwd: 'examples/split-view/less/',
152
+ src: ['*.less'],
153
+ dest: 'examples/split-view/css/',
154
+ ext: '.css'
155
+ },
156
+ {
157
+ expand: true,
158
+ cwd: 'examples/split-view-panel/less/',
159
+ src: ['*.less'],
160
+ dest: 'examples/split-view-panel/css/',
161
+ ext: '.css'
162
+ }
163
+ ]
164
+ },
165
+ apps: {
166
+ options: {
167
+ cleancss: false
168
+ },
169
+ files: [
170
+ {
171
+ expand: true,
172
+ cwd: 'apps/weather7/less/',
173
+ src: ['*.less'],
174
+ dest: 'apps/weather7/css/',
175
+ ext: '.css'
176
+ },
177
+ {
178
+ expand: true,
179
+ cwd: 'apps/todo7/less/',
180
+ src: ['*.less'],
181
+ dest: 'apps/todo7/css/',
182
+ ext: '.css'
183
+ },
184
+ ]
185
+ },
186
+ custom: {
187
+ options: {
188
+ paths: ['less'],
189
+ cleancss: false
190
+ },
191
+ files: {
192
+ 'custom/css/<%= framework7.filename %>.custom.css' : ['custom/<%= framework7.filename %>.custom.less'],
193
+ }
194
+ },
195
+ custom_min: {
196
+ options: {
197
+ paths: ['less'],
198
+ cleancss: true
199
+ },
200
+ files: {
201
+ 'custom/css/<%= framework7.filename %>.custom.min.css' : ['custom/<%= framework7.filename %>.custom.less'],
202
+ }
203
+ },
204
+ },
205
+ concat: {
206
+ options: {
207
+ banner: '<%= banner %>',
208
+ stripBanners: false,
209
+ process: function (src, filename) {
210
+ if (filename.indexOf('.js') >= 0) {
211
+ var addIndent = ' ';
212
+ filename = filename.replace('src/js/', '');
213
+ if (filename === 'wrap-start.js' || filename === 'wrap-end.js' || filename === 'template7.js') {
214
+ addIndent = '';
215
+ }
216
+ var add4spaces = ('f7-intro.js f7-outro.js proto-device.js proto-plugins.js proto-support.js dom7-intro.js dom7-outro.js').split(' ');
217
+ if (add4spaces.indexOf(filename) >= 0) {
218
+ addIndent = ' ';
219
+ }
220
+ var add8spaces = ('dom7-methods.js dom7-ajax.js dom7-utils.js').split(' ');
221
+ if (add8spaces.indexOf(filename) >= 0) {
222
+ addIndent = ' ';
223
+ }
224
+ src = grunt.util.normalizelf(src);
225
+ return src.split(grunt.util.linefeed).map(function (line) {
226
+ return addIndent + line;
227
+ }).join(grunt.util.linefeed);
228
+ }
229
+ else return src;
230
+ }
231
+ },
232
+ js: {
233
+ src: jsFilesList,
234
+ dest: 'build/js/<%= framework7.filename %>.js'
235
+ },
236
+ css_build: {
237
+ src: ['build/css/<%= framework7.filename %>.css'],
238
+ dest: 'build/css/<%= framework7.filename %>.css'
239
+ },
240
+ css_dist: {
241
+ src: ['dist/css/<%= framework7.filename %>.min.css'],
242
+ dest: 'dist/css/<%= framework7.filename %>.min.css'
243
+ },
244
+ js_custom: {
245
+ options: {
246
+ banner: customBanner
247
+ },
248
+ src: '<%= modulesJsList %>',
249
+ dest: 'custom/js/<%= framework7.filename %>.custom.js'
250
+ },
251
+ less_custom: {
252
+ options: {
253
+ banner: '',
254
+ },
255
+ src: '<%= modulesLessList %>',
256
+ dest: 'custom/<%= framework7.filename %>.custom.less'
257
+ },
258
+ css_custom: {
259
+ options: {
260
+ banner: customBanner
261
+ },
262
+ files: {
263
+ 'custom/css/<%= framework7.filename %>.custom.css' : ['custom/css/<%= framework7.filename %>.custom.css'],
264
+ 'custom/css/<%= framework7.filename %>.custom.min.css' : ['custom/css/<%= framework7.filename %>.custom.min.css'],
265
+ }
266
+ }
267
+ },
268
+ uglify: {
269
+ options: {
270
+ banner: '<%= banner %>'
271
+ },
272
+ dist: {
273
+ src: ['dist/js/<%= framework7.filename %>.js'],
274
+ dest: 'dist/js/<%= framework7.filename %>.min.js',
275
+ },
276
+ custom: {
277
+ options: {
278
+ banner: customBanner
279
+ },
280
+ src: ['custom/js/<%= framework7.filename %>.custom.js'],
281
+ dest: 'custom/js/<%= framework7.filename %>.custom.min.js',
282
+ }
283
+ },
284
+ jshint: {
285
+ options: {
286
+ jshintrc: '.jshintrc',
287
+ reporter: require('jshint-stylish')
288
+ },
289
+ build: {
290
+ src: ['Gruntfile.js', 'build/js/framework7.js']
291
+ },
292
+ custom: {
293
+ src: ['custom/js/<%= framework7.filename %>.custom.js']
294
+ }
295
+ },
296
+
297
+ watch: {
298
+ build: {
299
+ files: ['src/**'],
300
+ tasks: ['build'],
301
+ options: {
302
+ livereload: true
303
+ }
304
+ },
305
+ kitchen: {
306
+ files: ['kitchen-sink/jade/**', 'kitchen-sink/less/**'],
307
+ tasks: ['jade:kitchen', 'less:kitchen'],
308
+ options: {
309
+ livereload: true
310
+ }
311
+ },
312
+ examples: {
313
+ files: [
314
+ 'examples/tab-bar/jade/**', 'examples/tab-bar/less/**',
315
+ 'examples/split-view/jade/**', 'examples/split-view/less/**',
316
+ 'examples/split-view-panel/jade/**', 'examples/split-view-panel/less/**'
317
+ ],
318
+ tasks: ['jade:examples', 'less:examples'],
319
+ options: {
320
+ livereload: true
321
+ }
322
+ },
323
+ apps: {
324
+ files: [
325
+ 'apps/weather7/jade/**', 'apps/weather7/less/**',
326
+ 'apps/todo7/jade/**', 'apps/todo7/less/**',
327
+ ],
328
+ tasks: ['jade:apps', 'less:apps'],
329
+ options: {
330
+ livereload: true
331
+ }
332
+ }
333
+ },
334
+ jade: {
335
+ build: {
336
+ options: {
337
+ pretty: true,
338
+ },
339
+ files: [{
340
+ expand: true,
341
+ cwd: 'src/templates/',
342
+ src: ['*.jade'],
343
+ dest: 'build/',
344
+ ext: '.html'
345
+ }]
346
+ },
347
+ kitchen: {
348
+ options: {
349
+ pretty: true
350
+ },
351
+ files: [{
352
+ expand: true,
353
+ cwd: 'kitchen-sink/jade/',
354
+ src: ['*.jade'],
355
+ dest: 'kitchen-sink/',
356
+ ext: '.html'
357
+ }]
358
+ },
359
+ examples: {
360
+ options: {
361
+ pretty: true
362
+ },
363
+ files: [
364
+ {
365
+ expand: true,
366
+ cwd: 'examples/tab-bar/jade/',
367
+ src: ['*.jade'],
368
+ dest: 'examples/tab-bar/',
369
+ ext: '.html'
370
+ },
371
+ {
372
+ expand: true,
373
+ cwd: 'examples/split-view/jade/',
374
+ src: ['*.jade'],
375
+ dest: 'examples/split-view/',
376
+ ext: '.html'
377
+ },
378
+ {
379
+ expand: true,
380
+ cwd: 'examples/split-view-panel/jade/',
381
+ src: ['*.jade'],
382
+ dest: 'examples/split-view-panel/',
383
+ ext: '.html'
384
+ },
385
+
386
+ ]
387
+ },
388
+ apps: {
389
+ options: {
390
+ pretty: true
391
+ },
392
+ files: [
393
+ {
394
+ expand: true,
395
+ cwd: 'apps/weather7/jade/',
396
+ src: ['*.jade'],
397
+ dest: 'apps/weather7/',
398
+ ext: '.html'
399
+ },
400
+ {
401
+ expand: true,
402
+ cwd: 'apps/todo7/jade/',
403
+ src: ['*.jade'],
404
+ dest: 'apps/todo7/',
405
+ ext: '.html'
406
+ },
407
+ ]
408
+ }
409
+ },
410
+ copy: {
411
+ build: {
412
+ files: [
413
+ {
414
+ expand: true,
415
+ cwd: 'src/',
416
+ src: ['img/**'],
417
+ dest: 'build/'
418
+ },
419
+ {
420
+ expand: true,
421
+ cwd: 'src/my-app/',
422
+ src: ['my-app.css'],
423
+ dest: 'build/css/'
424
+ },
425
+ {
426
+ expand: true,
427
+ cwd: 'src/my-app/',
428
+ src: ['my-app.js'],
429
+ dest: 'build/js/'
430
+ }
431
+ ]
432
+ },
433
+ dist: {
434
+ files: [
435
+ {
436
+ expand: true,
437
+ cwd: 'build/',
438
+ src: ['**'],
439
+ dest: 'dist/'
440
+ }
441
+ ]
442
+ },
443
+ },
444
+ });
445
+
446
+ // Default task.
447
+ this.registerTask('default', ['build']);
448
+
449
+ // Build a new version of the library
450
+ this.registerTask('test', 'Test of <%= pkg.name %>', [
451
+ 'concat:js',
452
+ 'less:build',
453
+ 'concat:css_build',
454
+ 'jshint:build',
455
+ ]);
456
+
457
+ // Build a new version of the library
458
+ this.registerTask('build', 'Builds a development version of <%= pkg.name %>', [
459
+ 'concat:js',
460
+ 'less:build',
461
+ 'concat:css_build',
462
+ 'jshint:build',
463
+ 'copy:build',
464
+ 'jade:build',
465
+ ]);
466
+
467
+ // Release
468
+ this.registerTask('dist', 'Builds a distributable version of <%= pkg.name %>', [
469
+ 'concat:js',
470
+ 'less:build',
471
+ 'less:dist',
472
+ 'concat:css_build',
473
+ 'concat:css_dist',
474
+ 'jshint:build',
475
+ 'copy:build',
476
+ 'jade:build',
477
+ 'copy:dist',
478
+ 'uglify:dist'
479
+ ]);
480
+
481
+
482
+ // Kitchen Sink
483
+ this.registerTask('kitchen', 'Builds a kithcen sink', [
484
+ 'build',
485
+ 'jade:kitchen',
486
+ 'less:kitchen'
487
+ ]);
488
+ this.registerTask('examples', 'Compile examples less and jade files', [
489
+ 'jade:examples',
490
+ 'less:examples'
491
+ ]);
492
+ this.registerTask('apps', 'Compile apps less and jade files', [
493
+ 'jade:apps',
494
+ 'less:apps'
495
+ ]);
496
+
497
+ // Server
498
+ this.registerTask('server', 'Run server', [
499
+ 'connect',
500
+ 'open',
501
+ 'watch'
502
+ ]);
503
+
504
+ // Custom Build
505
+ this.registerTask('custom', 'Include modules in custom build', function (modules) {
506
+ if (modules) modules = modules.split(',');
507
+ modules = modules || [];
508
+ var modulesJsList = [], modulesLessList = [];
509
+ var i, module;
510
+ modulesJsList.push.apply(modulesJsList, customModules.core_intro.js);
511
+ modulesLessList.push.apply(modulesLessList, customModules.core_intro.less);
512
+
513
+ for (i = 0; i < modules.length; i++) {
514
+ module = customModules[modules[i]];
515
+ if (module.dependencies.length > 0) {
516
+ modules.push.apply(modules, module.dependencies);
517
+ }
518
+ }
519
+ for (i = 0; i < modules.length; i++) {
520
+ module = customModules[modules[i]];
521
+ if (!(module)) continue;
522
+
523
+ if (module.js.length > 0) {
524
+ modulesJsList.push.apply(modulesJsList, module.js);
525
+ }
526
+ if (module.less.length > 0) {
527
+ modulesLessList.push.apply(modulesLessList, module.less);
528
+ }
529
+ }
530
+ modulesJsList.push.apply(modulesJsList, customModules.core_outro.js);
531
+ modulesLessList.push.apply(modulesLessList, customModules.core_outro.less);
532
+
533
+ // Unique
534
+ var uniqueJsList = [];
535
+ var uniqueLessList = [];
536
+ for (i = 0; i < modulesJsList.length; i++) {
537
+ if (uniqueJsList.indexOf(modulesJsList[i]) < 0) uniqueJsList.push(modulesJsList[i]);
538
+ }
539
+ for (i = 0; i < modulesLessList.length; i++) {
540
+ if (uniqueLessList.indexOf(modulesLessList[i]) < 0) uniqueLessList.push(modulesLessList[i]);
541
+ }
542
+
543
+ // Tasks vars
544
+ grunt.config.set('modulesJsList', uniqueJsList);
545
+ grunt.config.set('modulesLessList', uniqueLessList);
546
+ grunt.config.set('modulesList', modules.join(', '));
547
+
548
+ // Run tasks
549
+ grunt.task.run([
550
+ 'concat:js_custom',
551
+ 'jshint:custom',
552
+ 'uglify:custom',
553
+ 'concat:less_custom',
554
+ 'less:custom',
555
+ 'less:custom_min',
556
+ 'concat:css_custom'
557
+ ]);
558
+ });
559
+
560
+ };
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Vladimir Kharlampidi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,113 @@
1
+ [![Stories in Ready](https://badge.waffle.io/nolimits4web/framework7.png?label=ready&title=Ready)](https://waffle.io/nolimits4web/framework7)
2
+ [![Build Status](https://travis-ci.org/nolimits4web/Framework7.svg?branch=master)](https://travis-ci.org/nolimits4web/Framework7)
3
+ [![devDependency Status](https://david-dm.org/nolimits4web/framework7/dev-status.svg)](https://david-dm.org/nolimits4web/framework7#info=devDependencies)
4
+ [![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=nolimits4web&url=https://github.com/nolimits4web/framework7/&title=Framework7&language=JavaScript&tags=github&category=software)
5
+
6
+ Framework7
7
+ ==========
8
+
9
+ Full Featured HTML Framework For Building iOS7 Apps
10
+
11
+ ## Attention!
12
+
13
+ Framework7 is on early development stage, so many things may be changed and sorted in a short time.
14
+
15
+ ## Getting Started
16
+ * Clone/download this repo
17
+ * Start building your App from changing Kitchen Sink, or from a clean template from `dist/` folder
18
+
19
+ ## Server
20
+
21
+ Because Framework7 uses Ajax for navigation between pages you will need a server. So to make it work you should put dist folder (or Kitchen Sink) on a server. Or, as an option, you may use Grunt's server. Just run:
22
+
23
+ ```
24
+ $ grunt server
25
+ ```
26
+
27
+ * Kitchen Sink will be available on `http://localhost:3000/kitchen-sink/`
28
+ * Dist - on `http://localhost:3000/dist/`
29
+
30
+ ## Kitchen Sink
31
+
32
+ Framework7' JS and CSS files in Kitchen Sink are temporary linked to `build/` to make development process easier on this stage. So to make it work you need to build Framework7 (see Build section) or to re-link JS and CSS files to `dist/` folder.
33
+
34
+ ## Dist vs Build versions
35
+
36
+ On production use files (JS and CSS) only from `dist/` folder, there will be the most stable versions, `build/` folder is only for development purpose
37
+
38
+ ## Build
39
+
40
+ Framework7 uses `grunt` to build a development (build) and dist versions.
41
+
42
+ First you need to have `grunt-cli` which you should install globally.
43
+
44
+ ```
45
+ $ npm install -g grunt-cli
46
+ ```
47
+
48
+ Then install all dependencies, in repo's root:
49
+
50
+ ```
51
+ $ npm install
52
+ $ grunt build
53
+ ```
54
+
55
+ The result is available in `build/` folder.
56
+
57
+ ## Dist/Release
58
+
59
+ After you have made build:
60
+
61
+ ```
62
+ $ grunt dist
63
+ ```
64
+
65
+ Distributable version will available in `dist/` folder.
66
+
67
+ ## Custom build
68
+
69
+ You can build custom version of Framework7 with only required components/modules. For example, if we need to include only Accordion, Modals and Tabs modules in addition to Framework 7 core:
70
+
71
+ ```
72
+ $ grunt custom:accordion,modals,tabs
73
+ ```
74
+ After that you will find created `custom/` folder with generated JS and CSS files. Here is the list of available additional modules:
75
+
76
+ * accordion
77
+ * searchbar
78
+ * messages
79
+ * modals
80
+ * swipeout
81
+ * sortable
82
+ * smart-select
83
+ * pull-to-refresh
84
+ * infinite-scroll
85
+ * tabs
86
+ * fast-clicks
87
+ * forms (means Ajax forms and forms storage)
88
+ * push-state
89
+ * slider
90
+ * photo-browser
91
+ * notifications
92
+
93
+ ## Contributing
94
+
95
+ All changes should be commited to `src/` files. Framework7 uses LESS for CSS compliations, and concatenated JS files (look at Gruntfile.js for concat files order)
96
+
97
+ If you want to help in Framework7 development and make it event better visit this page: http://www.idangero.us/framework7/contribute/
98
+
99
+ ## Forum
100
+
101
+ If you have questions about Framework7 or want to help others you are welcome to special forum at http://www.idangero.us/framework7/forum/
102
+
103
+ ## Docs
104
+
105
+ Documentation available at http://idangero.us/framework7/docs/
106
+
107
+ ## Tutorials
108
+
109
+ Tutorials available at http://idangero.us/framework7/tutorials/
110
+
111
+ ## Showcase
112
+
113
+ Appstore apps made with Framework7: http://idangero.us/framework7/showcase/