framework7rails 0.9.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/